跨子域和主机的 Cookie
在我使用开发环境和语言组合编写的应用程序中,我需要从两个不同的子域访问cookie,每个子域都在单独的主机上。
Cookie正在使用下面的PHP代码进行设置,我正在尝试从单独的主机上访问它。www.mydomain.com
distant.mydomain.com
setcookie('token', base64_encode(serialize($token)), time()+10800, '/', '.mydomain.com');
我正在尝试使用以下代码访问 Cookie:distant.mydomain.com
if (isset($_COOKIE['token'])) { /* do stuff */ }
问题:distant.mydomain.com
找不到 cookie。刚才提到的语句返回 false,即使 Cookie 存在也是如此。if
我已经验证了设置的cookie是用于(通过检查我的Firefox Cookie)。我想不出任何理由这不起作用。mydomain.com
使用相同的代码,我有一个在主机上专门运行的旧应用程序,并且该应用程序能够跨域访问cookie。这使我怀疑问题与单独的主机有关。setcookie
www.mydomain.com
以防以下任何信息是相关的:
- IIS 6.0
- Apache 2.2.9
- 两个服务器都使用PHP 5.2.x
- 两个服务器都在Windows Server 2003上运行www.mydomain.com
distant.mydomain.com
如果为了更好地描述问题,我可以提供任何进一步的信息,请告诉我!