Подтвердить что ты не робот

Лучший способ полностью уничтожить сеанс - даже если браузер не закрыт

Достаточно ли этого для

session_start();   //  Must start a session before destroying it

if (isset($_SESSION))
{
    unset($_SESSION);
    session_unset();
    session_destroy();
}

когда пользователь выбирает Log out из меню, но не выходит из браузера? Я хочу полностью удалить все существование сеанса и $_SESSION

4b9b3361

Ответ 1

Согласно manual, вам больше нужно сделать:

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

В ручной ссылке есть полный рабочий пример о том, как это сделать. Украденное оттуда:

<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finally, destroy the session.
session_destroy();
?>