使用JQuery / AJAX取消PHP会话

index页面上的按钮:

 $('#killsession').click(function() { $.get('killsession.php'); alert("OK"); }); 

killsession.php

  

使用此按钮终止会话后, index上任何与会话相关的函数仍然有效(会话变量仍然设置/存在)。 例如,我有一个计数会话变量,当我单击某个按钮时,该变量会递增。 这个计数变量在杀死会话后不会失去计数点。

是否可以使用JQuery按钮终止会话?

首次加载页面时会加载所有PHP会话项。 只要页面打开,它们仍然在页面/浏览器内存中。 您需要在终止会话后重新加载页面。 你可以用javascript window.location.href = window.location.href来做到这一点

 $('#killsession').click(function() { $.get('killsession.php', function() { alert("the server page executed"); //Here you may do further things. window.location = window.location; }); }); 

killsession.php

 session_start(); $_SESSION = array(); $params = session_get_cookie_params(); setcookie( session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); session_destroy(); exit('OK'); 

确保你只在ajax函数的回调中做其他事情(比如检查会话)。无论回调中的内容是什么,都会在收到ajax服务器页面的响应后执行。

 $('#killsession').click(function() { $.get('killsession.php',function(){ alert("the server page executed"); //Here you may do further things. }); });