Возможный дубликат:
Как мне закончить сеанс PHP через 30 минут?
Я уничтожаю всю сессию var в logout.php и вызываю ее, когда пользователь нажимает logout, что пользователь не нажимает на logout.php, но напрямую закрывает браузер. как я могу удалить сеанс?
Вы можете установить время истечения для данных сеанса, протестировать его при каждом вызове session_start
и уничтожить сеанс, если он истек:
session_start(); if (!isset($_SESSION['EXPIRES']) || $_SESSION['EXPIRES'] < time()+3600) { session_destroy(); $_SESSION = array(); } $_SESSION['EXPIRES'] = time() + 3600;
Ты не можешь. Тем не менее, файлы cookie сеансов обычно отправляются без истечения срока, что означает, что они удаляются при закрытии браузера, поэтому сеанс все равно будет потерян.
Сессии PHP должны автоматически истекать, когда окно браузера закрывается, если вы не изменяете время окончания Cookies сеанса. Если этого не произойдет, я бы предположил, что вы каким-то образом изменили это, и нам потребуется дополнительная информация, чтобы помочь.
Сессия может быть настроена на простое завершение срока действия сервера, который не слышит от клиента через определенный промежуток времени. Это направление, в котором вы хотите смотреть …
Мартин
Если вы не установите время истечения срока действия cookie сеанса, оно будет удалено, когда пользователь закроет браузер, что имеет тот же эффект для большинства практических целей (если вы не беспокоитесь о хранении или безопасности). Если этого недостаточно, вы можете быстро завершить сеансы и периодически обновлять их через AJAX.