правильный способ выхода из сеанса в PHP

Я прочитал много php-учебников для скриптов выхода, мне интересно, что может быть правильным способом выхода из сеанса!

Скрипт 1

<?php session_start(); session_destroy(); header("location:index.php"); ?> 

Скрипт 2

 <?php session_start(); session_unset(); session_destroy(); header("location:index.php"); ?> 

Скрипт 3

 <?php session_start(); if (isset($_SESSION['username'])) { unset($_SESSION['username']); } header("location:index.php"); ?> с <?php session_start(); if (isset($_SESSION['username'])) { unset($_SESSION['username']); } header("location:index.php"); ?> 

Есть ли более эффективный способ сделать это? Сессия всегда может быть создана путем входа в систему, поэтому я должен беспокоиться об использовании session_destroy () и вместо этого использовать unset ($ _ SESSION ['variable'])? какой из этих трех сценариев более предпочтителен?

Related of "правильный способ выхода из сеанса в PHP"

На странице session_destroy () в руководстве по PHP :

 <?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(); ?> 

Лично я делаю следующее:

 session_start(); setcookie(session_name(), '', 100); session_unset(); session_destroy(); $_SESSION = array(); 

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

Session_unset(); только уничтожает переменные сеанса. Для завершения сеанса есть еще одна функция session_destroy(); который также разрушает сеанс.

Обновить :

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