Очистить сеанс при выходе из браузера для php - PullRequest
0 голосов
/ 03 февраля 2012

Я работаю над проектом PHP, в котором мне нужно очистить видимость при закрытии браузера.

Мой проект:

Index.php -> userdata.php -> reports.php -> finalreport.html

возможно ли обработать уничтожение сеанса?

Мне нужно очистить сеанс всякий раз, когда пользователь выходит из браузера, пока он находится на любой странице.

Пожалуйстадайте мне знать, как мы можем справиться с этим.

1 Ответ

5 голосов
/ 03 февраля 2012

сеанс уничтожается, когда пользователь закрывает браузер **.если вы хотите уничтожить его, как только пользователь выгружает страницу, вы можете добавить обработчик к событию выгрузки страницы (что-то вроде jquery unload ) и выполнить ajax-запрос к сценарию, который просто очищает сеанс,

РЕДАКТИРОВАТЬ: по запросу ОП я добавлю определенный код.

1) на всех страницах (Index.php, userdata.php, reports.php, finalreport.html) добавьте этот javascriptкод

 $(window).unload(function() {
   $.get('session_destroyer.php');
 }); 

2) в файле session_destroyer.php используйте этот код (взято с php.net )

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

надеюсь, что это поможет

** ПРИМЕЧАНИЕ: как заметил один из комментаторов, это предполагает, что вы используете сеансы на основе файлов cookie (которые, по-моему, используются в PHP по умолчанию)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...