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