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

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

session_start(); // Must start a session before destroying it if (isset($_SESSION)) { unset($_SESSION); session_unset(); session_destroy(); } 

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

Solutions Collecting From Web of "Лучший способ полностью уничтожить сеанс – даже если браузер не закрыт"

Согласно руководству , есть еще что делать:

Чтобы вообще убить сеанс, как и для выхода из системы, идентификатор сеанса также должен быть отменен. Если для распространения идентификатора сеанса (поведение по умолчанию) используется куки-файл, необходимо удалить куки-файл сеанса. Для этого может использоваться 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's 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(); ?>