[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кто на сайте
Страницы: 1, 2
Игорь_Vasinsky
$result = mysqlQuery('SELECT * FROM `irb_users` WHERE `last_activity` > ' . (time() - 300));


т.е. ты предложил писать каждый раз время юзера, который шагает по сайту...

я делал так

1. Таблица для сессий
2. При авторизации - пишу юзера в таблицу + пишу его session_id();
3. Проверяю живучесть сессии - если что удаляю строку с юзером
или при logout юзера строку удаляю

и считаю строки.

но я макс на 300 хостов разчитывал... если больше, то проще по предидущему моему посту, чтоб не вешать БД

Цитата
а как убавить 1, если пользователь закроет браузер? Или если электричество у него отключат? Или если на него рояль упадет?
Я там предыдущее сообщение обновил, а пока обновлял, под ним понаписали.


да х.з. я пока не задумовался...

значит писат сессии в другой файл и проверять на живучесть

а как файл надует до 20 мб - выводить сообщение

UNDERCONSTRUCTION
профилактические работы... SORRY


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
eXaM
А смысл лишнюю таблицу держать, когда достаточно одного поля? К тому же, по нему можно еще и строку «Последнее посещение» формировать, а по вашему принципу получается денормализация.
Игорь_Vasinsky
+ ита = лолита

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
ну во первых я безпринципный
во вторых если у меня в одной табле веники, в другой пряники, в друго юзеры...

то логика мне подсказывает что в червёртой - сессии...

но можно и так... я же не сказал что это шаблон скрипта, который я разрешил размещать на ирбис скул - для изучения новичками.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
Да походу ТС нарвался на халяву. biggrin.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
eXaM
Игорь_Vasinsky, Википедия, да и какие-то там профессоришки, не согласны и ворчат нечто непонятное про какую-то нормализацию. О чем это они?
Игорь_Vasinsky
а... слушал я про неё.. второс раз меня тыкают носом в неё.

Тока у меня вопрос - всё это принципы посто=роения БД,

А вот мой пример работает и оч даж хорошо - но я не прав.

Так что учение свет - а не учение тоже свет но как разглядишь.

Слушаю дальше.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
да уж... и опять почитал и опят закружилась голова.

я ведь курсов не кончал и на ирбисе не учился. Интернет мой учитель.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Krevedko
Цитата
А без базы тоже можно. Пихать в сериализованном виде в файл массив такого вида:

не слишком ли жирный файл получится для такой посещаемости ? даже если стирать все данные кроме последних скажем 20 минут. да и действительно файл имеет обыкновение перетираться при одновременном доступе. заметил, когда делал счетчик на файлах. не помогал даже flock
Invis1ble
Krevedko
Цитата
не помогал даже flock

значит неправильно использовал

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

eXaM
Krevedko, ну вот я и написал, что БД предпочтительнее. А при такой посещаемости так и так жирное что-нибудь да будет: либо файл, либо выборка. Хотя зависит еще от интенсивности пользования сайтом. Может, там если пользователь минуту ничего не делает — значит вышел, а может, он видео получасовое смотрит. Это ведь все тоже сильно влияет на интервал, через который статус становится неактуальным.
Krevedko
Цитата (Invis1ble @ 5.04.2011 - 20:25)
Krevedko
Цитата
не помогал даже flock

значит неправильно использовал

flock() не будет работать на NFS и многих других сетевых файловых системах. Обратитесь к документации вашей операционной системы для получения дополнительной информации.

В некоторых операционных системах flock() реализован на уровне процессов. При использовании многопоточных серверных API, таких как ISAPI, вы не можете полагаться на flock() для защиты ваших файлов от дугих PHP-скриптов, которые работают в параллельном потоке на том же сервере!

flock() не поддерживается на старых файловых системах вроде FAT и его производных, так что всегда будет возвращать FALSE в этом окружении (это особенно касается пользователей Windows 98).

возможно сервер такой был
kirik
Цитата (eXaM @ 5.04.2011 - 13:51)
А без базы тоже можно. Пихать в сериализованном виде в файл массив такого вида

Тогда вероятность того, что ты накроешь свой жёсткий будет стремиться к 100% smile.gif

Цитата (Krevedko @ 5.04.2011 - 13:49)
2) а без базы это как-то можно ? а то посещаемость сайта скажем 1000000 человек в день (и это не штука). тут каждый запрос на счету

Можно ведь использовать таблички типа MEMORY для большой посещаемости, тогда запрос будет отрабатываться в разы быстрее. А ещё лучше прикрутить memcached (что-то типа этого, только для юзернэймов), тогда будет ещё круче, ибо потом не возникнет больших проблем в масштабировании на несколько серверов.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.