如何在关闭页面上取消设置会话

时间:2013-12-16 13:46:54

标签: javascript php jquery session

使用jQuery或其他什么,然后我怎样才能取消会话,并且仅在访问者关闭页面时

unset($_SESSION['foo']);

我知道唯一的方法是在Javascript中检测到那种东西是onunload& onbeforeunload次活动

那么如何在关闭页面时将其应用于取消设置$_SESSION['foo']

但是,如果访问者关闭页面,我为什么要取消会话?

我将在基于观看YouTube视频的简单网站中应用它 防止访问者多次打开watching.php 因此我会强制他们先关闭它,然后再拨打新视频观看 所以我的想法是删除会话,如果找到将打印错误消息 但问题是如何释放这个会话,所以我需要js的帮助来做到这一点 在页面watching.php

非常感谢

1 个答案:

答案 0 :(得分:0)

看起来这是太多的服务器密集型。像长轮询一样!此外,窗口关闭时,PHP会话会自动销毁。但是如果你坚持的话,你可以使用像onbeforeunload这样的方式附加一个AJAX调用的东西:

$(window).on('beforeunload', function(){
    $.getScript("killsession.php");
});

这会在窗口关闭之前获取JavaScript,而在killsession.php中,您可以延迟sleep(),并且可以取消设置会话。你的代码就像:

<?php
    unset($_SESSION)
    session_destroy();
    sleep(5);
?>

让我再次警告你,这真是一个不好的做法并消耗服务器周期!!!