我想构建我的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