Выйти при закрытии браузера

У меня есть сайт PHP с логином. Как только человек вошел в систему (используя стандартные сеансы на основе файлов), человек может щелкнуть страницу выхода, которая выполнит его выход.

Проблема в том, что посетители обычно этого не делают. Они просто закрывают веб-браузер.

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

Похоже, это будет гигантская дыра в безопасности :) в общих пользовательских средах (офисы, интернет-кафе и т. д.)

Мне нужно знать, как «выйти» из системы, закрыв окно. я знаю, что

 'session.cookie_lifetime' 

переменная установлена ​​в 0.

Должно быть какое-то решение. Любая помощь будет принята с благодарностью.


person Padraig    schedule 14.11.2013    source источник


Ответы (1)


PHP не может знать (отдельно), когда клиент закрывается, потому что это событие клиента, а не событие сервера. Однако вы можете использовать JS на клиенте для возврата AJAX на сервер, чтобы сообщить ему, что сеанс закрыт, используя событие window.unload ( ссылка ).

Вы также можете проверить этот ответ, в котором объясняется потенциальная дыра в очистке сеанса (не уверен, что это все еще применимо к большему количеству последние версии PHP), а также session.gc_maxlifetime, который вам также может понадобиться настроить.

person Skrivener    schedule 14.11.2013
comment
Я обнаружил, что он отлично работает в IE 8 и Safari. Только в Chrome и Firefox это не работает. Эти браузеры каким-то образом повторно используют файлы cookie сеанса после закрытия браузера. Я даже отключил «при запуске продолжать с того места, на котором остановился». Так что это не проблема PHP. - person Padraig; 14.11.2013