PHP會話變量我有一個使用AJAX來加載新的PHP文件,並更新顯示一個頁面的網站。不保留與阿賈克斯
我開始在主頁上我的PHP會話,但是當我使用Ajax來更新內部HTML我需要新的PHP文件的會話變量被加載。
這篇文章是與此類似:PHP Session Variables Not Preserved。但我檢查,我的php.ini具有session.use_cookies = 1
主頁PHP:
<?php
session_start();
if(isset($_SESSION['views']))
{$_SESSION['views']=$_SESSION['views']+1;}
else
{$_SESSION['views']=1;}
?>
用戶輸入後,我使用Ajax調用PHP文件並加載網頁的小節:
<?php
if(isset($_SESSION['views']))
{ echo "Views: " . $_SESSION['views'];}
else
{ echo "Views: NOT SET";}
?>
有人可以告訴我我錯過了什麼重要的步驟嗎?謝謝。
更新:在向主頁面和子頁面添加session_id()調用後,我看到兩個頁面都具有相同的Session_ID。然而,它仍然不能拉動會話變量,如果我給它賦值,兩個相同的名稱會話變量保持獨立於另一個。
回答此問題創建的問題:我發現我必須在我的php.ini文件中設置靜態session_save路徑。對於大多數付費虛擬主機服務,它們只有會話的默認容器,但受到負載平衡的影響。什麼是相關的。
當我在新文件中使用session_start()創建一個新的會話。反正有鏈接這些會話嗎? – Quinma 2012-08-01 23:07:49
會話的「鏈接」是會話cookie,它應該位於HTTP請求的Cookie標頭中... – Peter 2012-08-01 23:15:36
您沒有使用負載平衡的網絡服務器,是嗎? (當爲PHP會話使用默認的基於文件的後備存儲時,主機自然無法共享會話信息) – Peter 2012-08-02 05:25:16