Jump to content

destroying session on closing browser tab or body unload


vinpkl

Recommended Posts

hi alli have my logout.php which destroys sessions and session ids on click of logout buton. I want to have same effect means i want to call this logout.php script when the user closes the "browser tab".as these are the days of "browser tabs" so this is very important for me. when the user closed the whole browser or logout then all session and session ids are destroyed automatically but these sessions are not destroying when the user closes the "browser tab".I have tried ajax also but not able to get the result as i m not much in ajax. So it would be great if somebody helps me with calling my logout.php script on closing "browser tab".This is ajax script

<script type="text/javascript">function ajaxFunction(){var xmlHttp;try  {  // Firefox, Opera 8.0+, Safari  xmlHttp=new XMLHttpRequest();  }catch (e)  {  // Internet Explorer  try	{	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");	}  catch (e)	{	try	  {	  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");	  }	catch (e)	  {	  alert("Your browser does not support AJAX!");	  return false;	  }	}  }  xmlHttp.onreadystatechange=function()	{	if(xmlHttp.readyState==4)	  {	  document.myForm.time.value=xmlHttp.responseText;	  }	}  xmlHttp.open("GET","customer_logout.php",true);  xmlHttp.send(null);  }</script>

This is my customer_logout.php script

<? require_once("config.php");$unique_id = session_id(); session_regenerate_id();$qry="delete from cart_table where unique_id='$unique_id'";mysql_query($qry);$_SESSION = array(); session_unset();session_destroy();header("Location:index.php"); ?>

This is i calling ajax in html

<body onunload="ajaxFunction()">

vineet

Link to comment
Share on other sites

PHP session id is stored on the browser as a cookie named PHPSESSID which will be deleted only when you close the browser not the browser tab. You can try to delete that cookie on unload using javascriptSomething like this:

 <body onunload="destroySession();">

 function destroySession()  {	  document.cookie = "PHPSESSID=asd;path=/";  }

I haven't tested it, just guessing;Although, I don't think destroying the session when user closes the tab is a good idea. Let's say I'm browsing your website, and I have two pages from your website loaded on two tabs. If I close one of the tabs I will be logged out on the other :S

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...