简体   繁体   中英

Clear session on browser exit for php

I am working on a PHP project where in I need to clear the seesion on click browser close.

My project :

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

is it possible to handle session destroy?

I need to clear session , whenever user exits browser while they are in any page.

Please let me know how can we handle this.

the session is destroyed when the user closes the browser**. if you want to destroy it as soon as the user unloads the page, you could add a handler to the page unload event (something like jquery unload ) and do a ajax request to a script that just clears the session.

EDIT: per OP's request, i'll add specific code.

1) in all pages (Index.php, userdata.php, reports.php, finalreport.html) add this javascript code

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

2) in session_destroyer.php use this code (taken from 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();
?>

hope this helps

** NOTE: as one commenter noted, this assumes you're using cookie-based sessions (which is the default in PHP, i think)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM