使用jQuery
或其他什么,然后我怎样才能取消会话,并且仅在访问者关闭页面时
unset($_SESSION['foo']);
我知道唯一的方法是在Javascript中检测到那种东西是onunload
& onbeforeunload
次活动
那么如何在关闭页面时将其应用于取消设置$_SESSION['foo']
但是,如果访问者关闭页面,我为什么要取消会话?
我将在基于观看YouTube视频的简单网站中应用它
防止访问者多次打开watching.php
因此我会强制他们先关闭它,然后再拨打新视频观看
所以我的想法是删除会话,如果找到将打印错误消息
但问题是如何释放这个会话,所以我需要js
的帮助来做到这一点
在页面watching.php
非常感谢
答案 0 :(得分:0)
看起来这是太多的服务器密集型。像长轮询一样!此外,窗口关闭时,PHP会话会自动销毁。但是如果你坚持的话,你可以使用像onbeforeunload
这样的方式附加一个AJAX调用的东西:
$(window).on('beforeunload', function(){
$.getScript("killsession.php");
});
这会在窗口关闭之前获取JavaScript,而在killsession.php
中,您可以延迟sleep()
,并且可以取消设置会话。你的代码就像:
<?php
unset($_SESSION)
session_destroy();
sleep(5);
?>
让我再次警告你,这真是一个不好的做法并消耗服务器周期!!!