Я пытаюсь создать мою систему входа в систему AJAX, но у меня возникают некоторые проблемы с сеансами PHP.Установить сеанс php через ajax
Это код 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
Вы уверены, что ваш php.ini настроен на использование файлов cookie сеансов, а путь является доступным для PHP? Может быть, вероятность того, что путь сохранения сеанса неверен для вашей настройки. – Paul
@Paul Можете ли вы рассказать мне, как изменить php.ini, чтобы разрешить сеансы? – siannone