jQuery PHP session_destroy

时间:2013-03-12 14:25:48

标签: php jquery session

我正在尝试调用一个破坏会话并在其后重新加载页面的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它时,为什么会这样?谢谢!

3 个答案:

答案 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'];