[英]PHP session variable not persisting through AJAX call
我想使用HTML鏈接來更改PHP中的會話變量。 為此,我設置了一個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_start()
$session_id = session_id();
$sc = $_SESSION['person'];
但是,盡管AJAX成功函數返回正確的值,但$ sc變量始終顯示為空。 我已經檢查了兩個腳本的session_id,它們是相同的。 我還嘗試在item.php中設置會話變量,並且它仍然存在。 只是當我使用funcs.php腳本設置會話變量時,它不會保存。
任何和所有的想法都表示贊賞!
你正在發送報價:
data = "key='person'&value=" + _name;
^------^
這意味着你有效地做了:
$_SESSION["'person'"] = $value;
^------^-
請注意,這些單引號已成為會話密鑰名稱的PART。
嘗試
data = "key=person&value=" + _name;
^----^--- no quotes
代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.