Я создал простую страницу входа, которая основана на сеансах.
session_start();
и добавила страницу выхода, содержащую эту
session_destroy();
Теперь, когда я закрываю браузер / страницу и снова ее открываю, значения сеанса все еще существуют.
Я хочу знать, как полностью уничтожить сеанс на закрытии страницы / браузера.
если вы используете:
session_set_cookie_params(0); session_start();
Ваш cookie сеанса уничтожит, когда браузер будет закрыт … поэтому ваш сеанс будет хорошим, пока они не закроют браузер. IE. Вы входите в систему, и вы вошли в систему, вы закрываете браузер, снова открываете его, снова заходите на сайт, и вы не войдете в систему.
Вы сможете узнать только, закрыто ли окно браузера с помощью javascript, после чего вы можете вызвать запрос Ajax для выполнения действия выхода из системы.
Сервер не может обнаружить браузер или вкладку закрыт, вы можете использовать Javascript или Ajax, но, к сожалению, я не знаю об этом.
Мое предложение – использовать Session Timeout, поэтому сеанс будет уничтожен, если у пользователя нет действий. Это пример:
// destroy every 2 minutes if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 120)) { // last request was more than 2 minutes ago session_destroy(); // destroy session data in storage } $_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp // end of code
Надеюсь, это поможет вам
Если сеанс существует, выйдите из него, уничтожив сеанс и перенаправляя пользователя на домашнюю страницу. Для хранения идентификатора сеанса использовался временный файл cookie. Этот файл cookie также уничтожен.
<?php // This is the logout page for the site. session_start();//access the current session. //if no session variable then redirect the user if (!isset($_SESSION['user_id'])) { header("location:index.php"); exit(); }else{ //cancel the session $_SESSION = array(); // Destroy the variables session_destroy(); // Destroy the session setcookie('PHPSESSID', ", time()-3600,'/', ", 0, 0);//Destroy the cookie header("location:index.php"); exit(); } ?>
для удаления переменных сеанса – session_unset ();
уничтожить сеанс session_destroy ();
session_unset(); session_destroy();