我有一個主頁面啓動一個PHP會話,它創建會話ID#1。我用session_id()
檢查這個。我想從PHP AJAX腳本訪問這些會話變量。爲了測試這個,我只是簡單地執行:使AJAX PHP腳本使用與主頁面相同的會話
session_start();
echo session_id();
從這個AJAX腳本。它返回一個不同的AJAX會話ID。
我知道我可以將會話ID從主頁面傳遞給AJAX腳本。有沒有其他方法可以讓AJAX腳本默認打開同一個會話?
澄清我通過javascript來做到這一點,更具體地說,它是JQGrid的添加/編輯腳本。
你怎麼撥打電話相同的會話?如果它是通過JS,它應該有相同的會話ID。如果是閃光燈,則不同。 – usoban 2012-01-11 15:47:23
這是爲了處理會話cookie的範圍。很顯然,你的AJAX調用所調用的位置不在會話cookie的範圍之內 - 要解決這個問題,你需要[擴大範圍](http://php.net/session-set-cookie-params)或更改目標位置以使其落入現有範圍內。或者,您可以手動將會話ID作爲AJAX請求中的GET或POST參數傳遞。進一步閱讀cookie範圍[這裏](http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path)。 – DaveRandom 2012-01-11 15:47:25
@DaveRandom - 感謝有關cookie範圍的信息。我認爲這一定是問題所在。會話變量在web根目錄 - > index.php文件中定義,並且AJAX腳本位於Web根目錄的子文件夾中。我會盡量擴大範圍。我想你可以發表你的評論作爲答案。 – 2012-01-11 19:00:33