У меня есть функция Jquery Ajax для входа на веб-страницу.
url="<?php echo Yii::app()->createUrl("security/login") ?>"
$.ajax({
type:"POST",
url:url,
data:{},
success: function (jsonResponse) {
var json=JSON.parse(jsonResponse);
if(json.result == "SUCCESS")
{
<?php $_SESSION['LOGGED_USER']="USER"; ?>
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
И в моих взглядах макет У меня есть этот
session_start();
if(isset($_SESSION['LOGGED_USER']))
{
print_r("LOGGED");
}
else
{
print_r("NOT LOGGED");
}
Когда я вхожу в первый раз на страницу он печатает «НЕ LOGGED», но мне кажется, что она автоматически устанавливает сеанс так, что, когда Я перезагружаю страницу. Он печатает «LOGGED».
Как правильно настроить сеанс в моем аякс-запросе?
Большое спасибо :)
Обратите внимание, что 'if (json.result ==" SUCCESS ") { Php $ _SESSION ['LOGGED_USER'] =" USER "; ?> } 'устанавливает $ _SESSION ['LOGGED_USER'] после успеха этого запроса ajax не раньше этого. Поэтому в первый раз вы видите «NOT LOGGED», но затем вы входите в систему и $ _SESSION ['LOGGED_USER']. Затем вы обновите страницу и увидите «LOGGED». Надеюсь, теперь причина понятна :) – Fallen
@MuhammedHedayet: Умм ... нет. В зависимости от того, как настроен сервер и где находится этот скрипт, часть PHP либо выдает синтаксическую ошибку, либо запускает загрузку скрипта. – cHao
Спасибо всем за ваши ответы, я мой сценарий, так что мой контроллер устанавливает переменную сеанса и работает отлично. :) –