我有這個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」。
如何在我的ajax請求中正確設置會話?
非常感謝你:)
請注意,'if(json.result ==「SUCCESS」) {?php $ _SESSION ['LOGGED_USER'] =「USER」; ?> }'設置$ _SESSION ['LOGGED_USER']在那個ajax請求成功之前。因此,第一次看到「NOT LOGGED」,但是您登錄並設置了$ _SESSION ['LOGGED_USER']。然後刷新頁面並查看「LOGGED」。希望原因是明確的:) – Fallen
@穆罕默德赫德耶特:呃...不。根據服務器的配置方式以及腳本的位置,PHP部分會導致語法錯誤或運行腳本加載的時間。 – cHao
謝謝大家的回答,我的腳本讓我的控制器設置了會話變量,它完美地工作。 :) –