пользователи вошли в состояние сеанса только = true, пока они не покинули сайт - PullRequest
2 голосов
/ 19 марта 2012

Когда пользователь успешно входит на веб-сайт, это событие создает сеанс с именем 'loggedin' и устанавливает для него значение true.

if (criteria satisfied){
    $_SESSION['loggedin'] = true;}
else { ... }

Как можно сделать так, чтобы этот сеанс истекал при выходе пользователя извеб-сайт?

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

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

Ответы [ 2 ]

3 голосов
/ 19 марта 2012

попробуйте добавить:

session.cookie_lifetime = 0; 

в php.ini.Это удалит файл cookie сеанса, если пользователь покидает ваш веб-сайт (например, при закрытии браузера, если он выключает компьютер).См. session.cookie_lifetime.

0 голосов
/ 19 марта 2012

Сеанс на стороне клиента - это просто файл cookie с идентификатором # в нем.

Вы можете установить очень маленький срок действия файлов cookie, но если кто-то бездействует на странице, сеанс может истечь. Вы можете разместить скрытый IFRAME на всех своих страницах (главная страница / главный шаблон) с обновлением META, которое обновит срок действия файла cookie сеанса.

Вы также можете попытаться использовать событие JavaScript onUnload для вызова Ajax вашей страницы LogOut, которая может прервать сеанс и очистить cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...