Уничтожьте или сбросьте сессию, когда пользователь закроет браузер, не нажимая на выход из системы [дубликат]

21
задан Community 23 May 2017 в 12:09
поделиться

5 ответов

Вы можете установить время истечения срока действия данных сеанса, протестировать его с каждым вызовом session_start и уничтожить сеанс, если он истек:

session_start();
if (!isset($_SESSION['EXPIRES']) || $_SESSION['EXPIRES'] < time()+3600) {
    session_destroy();
    $_SESSION = array();
}
$_SESSION['EXPIRES'] = time() + 3600;
14
ответ дан 29 November 2019 в 21:17
поделиться

Вы не можете. Однако файлы cookie сеанса обычно отправляются без срока действия, что означает, что они удаляются при закрытии браузера, поэтому сеанс в любом случае теряется.

13
ответ дан 29 November 2019 в 21:17
поделиться

Сессии PHP должны автоматически завершаться при закрытии окна браузера, если вы не изменили время истечения срока действия Session Cookies. Если этого не происходит, я бы предположил, что вы каким-то образом изменили этот параметр, и нам потребуется дополнительная информация для оказания помощи.

3
ответ дан 29 November 2019 в 21:17
поделиться

Сеанс может быть просто истечен, если сервер не получает известие от клиента по прошествии определенного периода времени. Это то направление, в котором вы хотите смотреть ...

Мартин

1
ответ дан 29 November 2019 в 21:17
поделиться

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

1
ответ дан 29 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: