Shannon Doyle wrote:
Hi People, Trying to get a session to destroy correctly, however the darn thing just refuses to destroy. I call the following in a separate webpage in a effort to destroy the session, only to find that the session still persists. <?php session_start(); session_unset(); session_destroy(); Header("Location: index.php"); ?> Any help would be appreciated.
I looked into really nuking a session quite a while back and after searching around and scraping together some snippets of code I came up with this: <?php function destroySession($delSessFile = false) { // 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 (isset($_COOKIE[session_name()])) { $CookieInfo = session_get_cookie_params(); if ( (empty($CookieInfo['domain'])) && (empty($CookieInfo['secure'])) ) { setcookie(session_name(), '', time()-3600, $CookieInfo['path']); } elseif (empty($CookieInfo['secure'])) { setcookie(session_name(), '', time()-3600, $CookieInfo['path'], $CookieInfo['domain']); } else { setcookie(session_name(), '', time()-3600, $CookieInfo['path'], $CookieInfo['domain'], $CookieInfo['secure']); } } // Finally, destroy the session. session_destroy(); // go over board and actually delete the file right here and now! if ((boolean)$delSessFile) { $orgpath = getcwd(); /* chdir(PHP_BINDIR); */ chdir(session_save_path()); $path = realpath(getcwd()).'/'; if(file_exists($path.'sess_'.$id)) { // Delete it here unlink($path.'sess_'.$id); } chdir($orgpath); } } ?> hth -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php