Как узнать сколько авторизованных пользователей на сайте.?
_____________
jallvar.oxnull.net - мой блог.
sergeiss
5.04.2011 - 22:28
А свои мысли какие по этому поводу?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Игорь_Vasinsky
5.04.2011 - 22:31
вот блин... еслиб не sergeiss
я б всё выложил как на духу...
а так давайте думать.. давайте разбираться...
Так как думаешь - что может "придти" и быть на сайте с пользователем?
это не - друг... начинается и "С"
_____________
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
Trianon
5.04.2011 - 22:31
SELECT COUNT(*) FROM ... нет?
Игорь_Vasinsky
5.04.2011 - 22:32
т.е. что может получить пользовател - придя на сайт (а после ухода - оно умирает)
_____________
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
Invis1ble
5.04.2011 - 22:32
А мне кажется, можно завести столбик, куда записывать временную метку при любом проявлении активности, и выбирать тех, у кого разница между этой меткой и текущей меньше 300 секунд. Так получатся активные за последние 5 минут. Не? А приходит и уходит сессия что ли?
Игорь_Vasinsky
5.04.2011 - 22:42
eXaM
ну блин шпион.
нужно же чтоб человек сам думать начал, и нал с простого...
а ты алгоритм выкладывать...
_____________
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
5.04.2011 - 22:46
ну молодец... тогда с ТС - код
_____________
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
5.04.2011 - 22:49
1) я сначала подумал, что речь идет про этот форум
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
2) а без базы это как-то можно ? а то посещаемость сайта скажем 1000000 человек в день (и это не штука). тут каждый запрос на счету
Эй, че сразу ТС, мне тоже интересно, правильно ли я додумался:
<?php
$result = mysqlQuery('SELECT * FROM `irb_users` WHERE `last_activity` > ' . (time() - 300));
А без базы тоже можно. Пихать в сериализованном виде в файл массив такого вида:
array(array('username' => 'username',
'timestamp' => 99999999));
а потом брать его и обрабатывать циклом:
$new_array = array();
foreach($unserialized as $num => $array)
{
if($array['timestamp']) > (time() - 300)
$new_array[] = $array['username'];
}
И на выходе получаем массив с именами юзеров, активных за последние 5 минут. Главное — не забыть сериализовать $new_array и поместить обратно в файл. Но с файловой системой могут проблемы возникнуть (неизвестно, будет ли прирост или убыток производительности по сравнению с БД и что произойдет, если 2 пользователя одновременно захотят узнать, кто онлайн), так что БД, пожалуй, предпочтительнее.
Invis1ble
5.04.2011 - 22:52
Игорь_Vasinsky
5.04.2011 - 22:52
можно допустим при заходе добовлять 1, при выходе отнимать, ну это если перечень юзеров не нужен.
А так смыс тысячи имен выводить?
_____________
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, а как убавить 1, если пользователь закроет браузер? Или если электричество у него отключат? Или если на него рояль упадет?
Я там предыдущее сообщение обновил, а пока обновлял, под ним понаписали.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.