AJAX不会携带会话变量

我有一个集中的索引页面,其中包含我的所有页面。 在此索引页面内,我开始了我的会话。 我通过回应所有变量来测试它,它工作。

在AJAX php脚本中,我尝试调用一个会话变量,它似乎打印出任何东西:甚至没有会话标识。 根据我的研究,你需要在AJAX脚本上调用session_start()。 我这样做了,它开始了会话,但使用了不同的ID,并且没有访问主网站上设置的会话变量。 在Google的前5页中,我没有发现任何内容来复制我的问题。

如果我将'。。。_ _ SESSION ['usr']。''部分的mysqli查询更改为我的用户名,它会起作用。 这也证明了它实际上是AJAX脚本没有看到会话变量。

我能做些什么让AJAX脚本查看主网站上的会话,而不是没有数据的会话?

码:

AJAX:

$(document).ready(function(){

    // Moving North
    $('#moveNorth').on('click', function(){
        var value = $(this).text();
        $.ajax({
            url: "ajax/moveNorth.php",
            type: "POST",
            data: {data : value},
            cache: false,
            success: function(result) {
                 $('#coordinate-y').html(function(i, val) { return +val+1 });
            },
            error: function() {
                alert("Something went wrong. Please email an admin.");
            }
        });
     });
});

PHP脚本:

<?php

$sessionTest = session_id();//$_SESSION['usr'];

echo "Session Test | " . $sessionTest . " |";

$mysqli = new mysqli("db_host", "db_user", "db_password", "db_name");

if($mysqli->connect_errno)
{
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
else
{
    $mysqli->query("UPDATE table_name SET coord_x = coord_x - 1 WHERE username = '".$_SESSION['usr']."'");
}

?>

页面调用AJAX:

<?php
$sessionTestID = session_id();//$_SESSION['usr']; 
echo $sessionTestID;
?>
链接地址: http://www.djcxy.com/p/59723.html

上一篇: AJAX does not carry session variables

下一篇: Passing sessions variables through an iframe, php