PHP通过AJAX更新SESSION或COOKIE

时间:2014-10-06 11:35:31

标签: php jquery ajax session cookies

我正在尝试通过AJAX调用更新会话或cookie到同一域上的页面但我不断得到奇怪的结果。刷新页面后,当我希望旧会话保持不变时,会创建一个新会话。

从index.php调用AJAX:

$.ajax({
        type: 'POST',
        url: '/api/cart.php?function=GetCart',
        dataType: 'json',
        async: false,
        data: {
            json: true
        },
        success: function(cart) {
            window.console.log(cart);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {}
});

cart.php中的PHP:

var_dump($_SESSION["test"]);
print("\n");
print("\n");

$_SESSION["test"] = rand(1, 999);
print("\n");
print("\n");

var_dump($_SESSION["test"]);
die();

首先刷新:

<b>Notice</b>:  Undefined index: test in <b>cart.php</b> on line <b>xxx</b><br />
NULL
int(154)

第二次刷新:

<b>Notice</b>:  Undefined index: test in <b>cart.php</b> on line <b>xxx</b><br />
NULL
int(981)

1 个答案:

答案 0 :(得分:0)

php默认维护会话在ajax调用上,使用fn:isset()/ empty()来检查ajax调用的会话。如果会话过期再次登录。第二个选项是,您可以增加会话超时持续时间。 how-to-change-the-session-timeout-in-php