Уничтожить сеанс PHP при закрытии

Я создал простую страницу входа, которая основана на сеансах.

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