当用户离开页面时,如何重置会话?

时间:2010-11-15 14:03:42

标签: php session

我已创建a session以跟踪特定网页上的某些用户操作。

当用户离开该特定页面(但仍在同一站点上)时,我需要重置会话。

我可以在会话到期时设置设置计时器,但这不是我想要的。

如何在页面导航中重置会话?

5 个答案:

答案 0 :(得分:4)

只需在加载新页面时首先重置会话。

答案 1 :(得分:0)

您是否有一个页面可以路由所有流量?如果是这样,你可以做一个简单的检查

if ($current_page != $session_page) {
    $_SESSION = array();
}

如果您没有单个页面,所有流量都会通过,那么您需要在每个其他页面的开头重置会话。

$_SESSION = array();

答案 2 :(得分:0)

或者你可以使用

unset($_SESSION);

session_destroy();

虽然注意这些处理方式与上述建议略有不同。注意第二个(session_destroy)将要求您在需要时重新启动会话。

答案 3 :(得分:0)

你永远无法确定会话是否真的被破坏了。

但是有一个老技巧用于例如聊天应用程序,其中打印“...正在离开”消息:在卸载时只需打开一个弹出窗口,其中window.open()调用您的注销页面,然后结束了。

答案 4 :(得分:0)

我过去所做的是在卸载到未设置的页面时快速调用ajax,就像本页上的其他答案一样。

<script>
 function myAjaxCall(){
  //if using jquery
  $.ajax('unset.php');
 }
</script>

<body onunload="myAjaxCall()">