我想構建我的AJAX登錄系統,但我遇到了PHP會話的一些問題。通過ajax設置php會話
這是我在使用了AJAX代碼我index.php
:
$("#buttonLogin").click(function(){
$.post("<?php echo $AJAX ?>/ajaxLogin.php",{
Username : $("#loginUsername").val(),
Password : $("#loginPassword").val()
},
function(result){
if(result == "OK"){
window.location.href = "<?php echo $PUBLIC?>/home.php";
} else {
$("#loginMessageError").show();
}
});
});
這是ajaxLogin.php
是通過AJAX調用:
<?php
require_once("../settings.php");
require_once($ABS_ENGINE."/classUser.php");
$user = new User();
if($user->loginUser($_POST["Username"], $_POST["Password"])){
$UserID = $user->getUserId($_POST["Username"]);
session_start();
$_SESSION['UserID'] = $UserID;
echo "OK";
} else {
echo "ERROR";
}
?>
當我在home.php
我嘗試回聲$_SESSION["UserID"]
,我收到以下錯誤:
Notice: Undefined index: UserID in C:\xampp\htdocs\webname\resources\templates\headerHome.php on line 23
可能這是不正確的,因爲會話必須在任何輸出之前設置,但如果我嘗試回顯$_SESSION['UserID'] = $UserID;
行,它的會話變量已正確顯示。
唯一的其他解釋是多個會話正在啓動。檢查兩個頁面的session_id()來驗證這個 – Starx 2012-01-01 17:35:27
你確定你的php.ini被設置爲使用會話cookie並且路徑是PHP可訪問的嗎?會話保存路徑對於您的設置可能有誤。 – Paul 2012-01-01 18:01:44
@Paul你能告訴我應該如何改變php.ini以允許會話嗎? – siannone 2012-01-01 18:12:15