我正在使用子域,會話和Ajax的PHP項目中工作。但不幸的是,我無法讓它工作!我會盡力解釋:PHP會話如何使用子域和AJAX工作?
讓我們假設我在這個領域:app.mysite.com/index.php
在這個領域,我必須執行一個Ajax請求形式mysite.com/functions/execute.php(沒有任何子域)
在execute.php的第一行中,我有一個require_once,包括一個helper.php文件。在這個文件中,我已經提出了:
ini_set('session.cookie_domain', '.mysite.com');
session_set_cookie_params(0, '/', '.mysite.com');
session_start();
列出的所有PHP文件還包括helper.php。
如果我的例子來看:
echo $_SESSION["myValue"];
在app.mysite.com/index.php或任何其他子網域,例如auth.mysite.com,我會得到的值: 「test」。 但是,如果我在execute.php運行相同的代碼,並通過Ajax返回值,我會得到未定義的索引!
我在做什麼錯?
http://stackoverflow.com/questions/14611545/preserving-ses sion-variables-across-different-domains –
這些可能是相關的。 [1](http://stackoverflow.com/questions/9153716/sharing-session-variables-between-multiple-subdomains),[2](http://stackoverflow.com/questions/1064243/php-sessions-across - 子域),[3](http://stackoverflow.com/questions/644920/allow-php-sessions-to-carry-over-to-subdomains)只有「可能」,因爲這些都是3歲以上問題,所以他們可能不再工作了。如果你願意,可以在你的問題中加入你的PHP版本,如果其中一個解決了你的問題,回答你自己的問題,或者留下評論說那些解決方案仍然很好。 – Terminus
感謝您的答案,但不幸的是我無法使用AJAX獲取$ _SESSION值。 如果我打開AJAX請求的URL,在我的Web瀏覽器中,我可以看到$ _SESSION值。只使用不起作用的AJAX! – jNewbie