2010-07-21 23 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