[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление сесии, если пользователь ушел с сайта
IPnex
Всем привет!
Такая ситуация, при заходе пользователя на сайт под своим логином и паролем регистрируется сессия с его именем и в БД меняется поле online на 1. После нажатия кнопки Выход, сессия убивается и поле online меняется на 0.
Собственно вопрос, как убивать сессию и менять поле online на 0, если пользователь не нажимал кнопки Выход, а просто закрыл браузер? Или например через 10 минут бездействия



Спустя 18 минут, 28 секунд (5.10.2010 - 16:24) waldicom написал(а):
Поставить время жизни сессии на 10 минут? Это в инишнике

Спустя 6 минут, 28 секунд (5.10.2010 - 16:30) IPnex написал(а):
Цитата (waldicom @ 5.10.2010 - 16:24)
Поставить время жизни сессии на 10 минут? Это в инишнике

Я ставил для теста на 10 секунд через ini_set('session.gc_maxlifetime', 10) и ini_set('session.cookie_lifetime', 10), но почему-то не удалается

Спустя 16 минут, 20 секунд (5.10.2010 - 16:47) Семён написал(а):
Держать hash сессии в базе и очищать его по истечению времени не активности.

Спустя 11 минут, 9 секунд (5.10.2010 - 16:58) IPnex написал(а):
Цитата (Семён @ 5.10.2010 - 16:47)
Держать hash сессии в базе и очищать его по истечению времени не активности.

А как задать это время неактивности?

Спустя 10 часов, 46 минут, 46 секунд (6.10.2010 - 03:45) Ice написал(а):
Цитата (IPnex @ 5.10.2010 - 17:30)
но почему-то не удалается

что именно? сессионная кука? она и не удалится

Спустя 1 день, 12 часов, 28 минут, 48 секунд (7.10.2010 - 16:14) IPnex написал(а):
Цитата (Ice @ 6.10.2010 - 03:45)
Цитата (IPnex @ 5.10.2010 - 17:30)
но почему-то не удалается

что именно? сессионная кука? она и не удалится

Нет, я просто хотел сделать так: если пользователь не нажимает "Выход", а просто закрывает браузер, то через какое-то время должна вызыватся функция session_destroy() и в БД обновлятся поле online на 0 и все. Но проблема в том, что я не пойму как проверить активность пользователя или закрытие браузера. Или если моя логика не верна, то подскажите пожалуйста как сделать по другому

Спустя 22 часа, 32 минуты, 53 секунды (8.10.2010 - 14:46) zx-spectr написал(а):
В таблице, где хранишь онлайн пользователь или нет, храни время последнего обращения пользователю к сайту и сбрасывай поле online на 0, у пользоватетлей которые бездействовали в течении например 30 минут.

Спустя 24 минуты, 49 секунд (8.10.2010 - 15:11) IPnex написал(а):
Цитата (zx-spectr @ 8.10.2010 - 14:46)
В таблице, где хранишь онлайн пользователь или нет, храни время последнего обращения пользователю к сайту и сбрасывай поле online на 0, у пользоватетлей которые бездействовали в течении например 30 минут.

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

Спустя 1 час, 24 минуты, 33 секунды (8.10.2010 - 16:36) zx-spectr написал(а):
Ну вот когда запустился, считывай с БД записи у которых online = 1 и поле с датой обращения старше 30 минут, у всех найденных записей сбрасывай флаг online.
Быстрый ответ:

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