4

页面按钮index

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

killsession.php

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

使用此按钮终止会话后,任何与会话相关的功能index仍然有效(会话变量仍然设置/存在)。例如,我有一个计数会话变量,当我单击某个按钮时它会增加。此计数变量在终止会话后不会失去其计数位置。

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

4

3 回答 3

5

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

于 2012-08-07T04:05:51.173 回答
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');
于 2012-08-07T04:58:22.567 回答
1

确保您仅在 ajax 函数的回调中执行其他操作(例如检查会话)。回调中的任何内容都将在收到来自 ajax 服务器页面的响应后执行。

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

    });

});
于 2012-08-07T04:05:51.407 回答