使用JQuery / AJAX取消PHP会话

时间:2012-08-07 04:02:28

标签: php jquery session

index页面上的按钮:

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

killsession.php

<?php
session_start():
session_destroy();
?>

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

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

3 个答案:

答案 0 :(得分:5)

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

执行此操作

答案 1 :(得分:4)

$('#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');

答案 2 :(得分:1)

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

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

    });

});