Я пытаюсь вывести пользователей из системы, когда происходит таймаут сеанса пользователя. Журналирование пользователей - в моем случае - требует изменения «онлайн» статуса пользователя в базе данных.
Я думал, что смогу использовать шаблон наблюдателя, чтобы сделать что-то, что будет контролировать состояние сеанса пользователя и вызвать обратный вызов, когда истечет срок действия сеанса, что позволит сохранить имя пользователя, чтобы мы могли обновить db. Я не совсем уверен, с чего начать на стороне сеанса. Могу ли я связать обратный вызов таймаута сеанса?php observer pattern для регистрации пользователя вне времени сеанса связи
Эти вещи встроены в любые доступные пакеты груши или zend-сессии? Я буду использовать все, что у меня есть, чтобы это произошло!
UPDATE @ 16:33:
Что делать, если у вас есть система, в которой пользователи могут взаимодействовать друг с другом (но они могут взаимодействовать только с интернет-пользователей)? Пользователь должен знать, какие другие пользователи сейчас в сети.
Если мы просто проверим, будет ли сеанс еще живым на каждой обновленной странице, то после таймаута пользователь отправляется на незарегистрированную страницу, но они по-прежнему перечислены как онлайн в системе.
Этот метод будет прекрасен, за исключением того, что когда мы закончим сессию, мы потеряем информацию о пользователе, которая может быть использована для их выхода из системы.
UPDATE @ 16: 56:
право. Благодарю. Я согласен ... вроде уродливый. У меня уже есть медленный опрос сервера, поэтому было бы довольно просто реализовать этот метод. Это похоже на такую полезную функцию для пакета обработки сеанса. Zend и PEAR имеют пакеты сеансов.
Вместо cron проведите проверку пользователя на логике страницы (посмотрите файл cookie, отметьте столбец «last_visited» в записи db пользователя и т. Д.). Поэтому, если пользователь решает снова стать активным, вы можете проверить информацию и активность пользователя и все еще иметь возможность перенаправлять, поскольку заголовки еще не отправлены. – 2009-02-26 06:42:16