我正在尝试调用一个破坏会话并在其后重新加载页面的php脚本。
$(document).bind("active.idleTimer", function(){
$.post("data.php?data=active");
location.reload();
});
data.php
if($_GET['data'] == 'active') {
session_destroy();
}
它不会破坏会话,只有当我手动打开url data.php?data = active它时,为什么会这样?谢谢!
答案 0 :(得分:2)
问题是您发送请求的脚本正在使用自己的会话。因此,用户有一个会话,这与您发送“刷新空闲状态”请求的会话不同。
一种解决方案是使用javascript启动计时器,当计时器用完时,只需刷新页面即可。
这就是为什么它只在您实际访问data.php页面时才有效。
答案 1 :(得分:0)
如果要使用$_SESSION
数组中存储的数据,则需要使用session_start()
启动或恢复现有会话。在您的data.php中,试试这个:
if($_GET['data'] == 'active') {
session_start();
session_destroy();
}
请注意,{<1}}应>> 之前使用将任何输出发送给客户。
希望它有所帮助!
答案 2 :(得分:-1)
修改:
$.post("data.php", {data: active}, function(whatever){}
并在您的php文件中使用:
$_POST['data'];