2009-06-10 2 views
1

Привет, ребята У меня есть простой сайт, основанный на членстве, где пользователи входят в систему и имеют свои собственные профили. Я хотел бы иметь возможность сказать в любой момент времени, сколько пользователей, а точнее, какие пользователи в настоящее время регистрируются на моем веб-сайте.Как узнать общее количество сеансов, созданных, т. Е. Количество зарегистрированных пользователей?

Его простая система на основе членства в php. Один из способов - это создать таблицу в db и хранить данные для входа там и данные сеанса, но это можно сделать каким-то другим способом, так или иначе, чтобы узнать, сколько сеансов было запущено, и всех уникальных пользователей в Интернете.

+0

Duplicate! http://stackoverflow.com/questions/679657/find-number-of-open-sessions – Evert

+0

@Magnus - у него хорошо получилось, что оно почти завернуто :) @Evert - oops не заметил этого, спасибо для его поднятия в любом случае ... – Ali

ответ

6

Лучший способ сделать это - записать lastActivityTime для каждого пользователя. Когда они обращаются к странице, запишите время в своей записи db. Как только вы это сделаете, запустите простой запрос, чтобы подсчитать все записи, имеющие lastActivityTime менее чем за 5 минут от Current Time.

Чтобы не спрашивать, «сколько пользователей вошли в систему», вы спрашиваете «сколько пользователей было недавно активным».

+0

Извините за долгое ожидание, я решил пойти с этой идеей, сделать все более понятным и легко реализовать и достаточно точно. Благодаря! – Ali

0

Один из методов, который я использовал, - это написать собственный обработчик сеанса - на php.net есть много примеров. Как только данные сеанса находятся в SQL, вы можете сделать гораздо больше.

2

Ключевая проблема с целым «мониторингом активных сеансов» заключается в том, что вы (сервер) не обязательно полностью контролируете сеанс. Браузеры пользователя могут истекать в любой момент времени, поэтому вы не можете гарантировать активных пользователей в любой момент.

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

Дополнительная информация, которую вы можете сделать (часто используется онлайн-чатами для поддержания активного списка чатов), заключается в опросе страницы с заданным интервалом (с использованием AJAX), а затем даже если они не обновляют на странице, которую вы все еще знаете, они там. Если запрос ajax не поступает в указанный интервал, пользователь переместился или закроет свой браузер.

Смежные вопросы