我是一個完整的PHP會話noob。我已經讓他們在以前工作,但從來沒有在現場服務器上,只在我的本地測試環境中工作。PHP會話變量設置不正確
我的問題是,$ _SESSION變量總是一個空數組(未定義)。
這是一個登錄表單,它正在對php文件進行AJAX調用。
這裏是AJAX調用:
$.ajax({
url: 'xhr/login.php',
data: $(this).serialize(),
type: 'post',
dataType: 'json',
success: function(result){
if (result.success){
console.log(result);
};
},
error: function(e){console.log("Could not retrieve login information")}
});
下面是登錄腳本中的相關部分:
# Start the user session
if(!isset($_SESSION)) {
session_start();
session_regenerate_id();
};
# Set our session values
WHILE($session_row = mysql_fetch_assoc($session_result)){
$_SESSION['id'] = $session_row['id'];
$_SESSION['last_login'] = $session_row['last_login'];
$_SESSION['username'] = $session_row['username'];
$_SESSION['signup_date'] = $session_row['signup_date'];
};
我已返回的Json返回會話變量爲:
echo json_encode(array("success"=>"user logged in", "session"=>$_SESSION));
但是當我將result.session變量記錄到控制檯時,它只是返回一個空數組。
爲什麼'while'大寫?你在哪裏做這個數據庫查詢? – cspray 2012-01-07 18:04:33
其中是$ session_result被生成?如果沒有錯誤產生,可能是「$ session_row = mysql_fetch_assoc($ session_result)」永遠不會返回true,因此循環被忽略。另外,正如查爾斯所問,它應該是「一會兒」,而不是一會兒。 – 2012-01-07 18:05:55