我已创建a session以跟踪特定网页上的某些用户操作。
当用户离开该特定页面(但仍在同一站点上)时,我需要重置会话。
我可以在会话到期时设置设置计时器,但这不是我想要的。
如何在页面导航中重置会话?
答案 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()">