gpt4 book ai didi

javascript - PHP session 变量不通过 AJAX 调用持久化

转载 作者:行者123 更新时间:2023-11-30 12:09:25 25 4
gpt4 key购买 nike

我想使用 HTML 链接来更改 PHP 中的 session 变量。为此,我设置了一个 HTML“a”标记,它会调用如下所示的 javascript 函数:

function changeValue(name){
data = "key='person'&value=" + _name;
$.ajax({
url: www_root + "/funcs.php?func=set_session_var",
type: "post",
data: data,
success: function(data){
console.log(data);
}
});
}

然后,我有了 funcs.php 脚本,它有这样的 set_session_var 函数:

function set_session_var(){
session_start();
$key= trim($_GET["key"]);
$value= trim($_GET["value"]);
$_SESSION[$key] = $value;
session_write_close();
echo $key;
}

然后,原始的 php/html 页面将重新加载,但它会首先加载一个外部页面(称为 item.php),该页面解决了所有 php session 问题。看起来像这样:

session_start()
$session_id = session_id();
$sc = $_SESSION['person'];

但是,尽管 AJAX 成功函数返回了正确的值,$sc 变量始终显示为空。我已经检查了两个脚本的 session_id,它们是相同的。我还尝试在 item.php 中设置一个 session 变量,它仍然存在。只是当我使用 funcs.php 脚本设置 session 变量时,它不会保存。

感谢任何和所有的想法!

最佳答案

您正在发送报价:

data = "key='person'&value=" + _name;
^------^

这意味着您正在有效地做:

$_SESSION["'person'"] = $value;
^------^-

请注意,那些单引号已成为 session key 名称的一部分。

尝试

data = "key=person&value=" + _name;
^----^--- no quotes

相反。

关于javascript - PHP session 变量不通过 AJAX 调用持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34207598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com