session_unset () против session_destroy () в PHP
Есть две очень похожие функции PHP session_destroy () и session_unset (). Оба, похоже, удаляют все переменные, зарегистрированные в сеансе, но между ними есть разница.
Функция session_destroy (): уничтожает все данные, связанные с текущим сеансом. Он не сбрасывает ни одну из глобальных переменных, связанных с сеансом, и не сбрасывает cookie сеанса.
Синтаксис:
bool session_destroy (недействительно)
Функция session_unset (): удаляет только переменные из сеанса, а сеанс все еще существует. Обрезаются только данные.
Синтаксис:
bool session_unset( void )
Example 1: This example saving the session by using session.php file.
<?php // Function to start session session_start(); // Display the session id echo session_id(); // Check the session name exists or not if ( isset( $_SESSION [ "name" ]) ) { echo "<br>" . "session is set." ; } else { echo "<br>" . "session is destroyed" ; } $_SESSION [ "name" ] = "GeeksForGeeks" ; $_SESSION [ "email" ] = "GeeksForGeeks@email.com" ; ?> |
Выход:
Before using session_unset() function: Before using the session function it displaying the name and email.
<?php // Function to start session session_start(); // Check the session name exists or not if ( isset( $_SESSION [ "name" ]) ) { echo "session is set." ; } else { echo "please set the session" ; } echo $_SESSION [ "name" ]. "<br>" ; echo $_SESSION [ "email" ]. "<br>" ; ?> |
Выход:
After using session_unset() function: This function destroys the variables like ‘name’ and ’email’ which are using.
<?php // Function to start session session_start(); // Check the session name exists or not if ( isset( $_SESSION [ "name" ]) ) { echo "session is set." ; } else { echo "session variables deleted" ; } echo $_SESSION [ "name" ]; echo $_SESSION [ "email" ]; // Use session_unset() function session_unset(); ?> |
Выход:
Функция session_destroy (): уничтожает всю сессию, а не переменные. Когда вызывается session_start (), PHP устанавливает файл cookie сеанса в браузере. Нам также необходимо удалить файлы cookie, чтобы полностью уничтожить сеанс.
Example: This example is used to destroying the session.
<?php // Function to start session session_start(); // Check the session name exists or not if ( isset( $_SESSION [ "name" ]) ) { echo "session is set." . "<br>" ; } else { echo "session is destroyed" . "<br>" ; } echo $_SESSION [ "name" ]. "<br>" ; echo $_SESSION [ "email" ]. "<br>" ; $_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.php вы можете видеть, что существует другой идентификатор сеанса, это означает, что предыдущий сеанс был уничтожен, и все переменные и файлы cookie также уничтожены. Поскольку все переменные уничтожены, PHP переходит к выходу состояния else, «сеанс уничтожен».
Примечание. Если вы хотите прервать сеанс, удалите также файл cookie сеанса. Это уничтожит сеанс, а не только данные сеанса.