2010-07-21 28 views
0

我不知道我是否做錯了什麼,或者我只是得到這個錯誤?AJAX&PHP:通過代理加載外部域並使用會話cookie?

我使用jquery load()加載了子域的一部分。就在我開始加載方法之前,我使用php將密碼保存到$ _SESSION。我用jquery load()加載的子域的一部分需要這個密碼信息。

這是否算作同一個會話,因爲我無法檢索加載的子域部分中的$ _SESSION信息?

或者不是這個工作,因爲我實際上加載了不同的網站的一部分,所以會話是不同的?

有什麼想法嗎?

回答

0

$_SESSION綁定到名爲PHPSESSID的Cookie,默認情況下,您只能在確切的域名中使用它。 a.example.com無法從b.example.com訪問cookie,因此會話也無法跨越。

但是,有一種方法可以將PHPSESSID Cookie設置爲在整個域中可用:session_set_cookie_params()允許您將相關設置應用於該Cookie。通過將域名設置爲.example.com(前面的點必須在那裏!),您可以將該cookie設置爲example.com和所有子域。

session_set_cookie_params(0, '/', '.example.com'); 
+0

謝謝你會試試! – matt 2010-07-21 05:00:02

+0

我必須在那裏設置?就在session_start()之後; ? – matt 2010-07-22 00:56:08

+0

@mathiregister - 我從來沒有用過它;我只在谷歌搜索的PHP文檔中發現它。我敢打賭你會在*'session_start'之前放置*,以便會話以正確的設置開始。某些瀏覽器和擴展程序將允許您詳細檢查您的Cookie - 這可能有助於調試此特定位。 – Matchu 2010-07-22 01:08:42