当前位置:  开发笔记 > 编程语言 > 正文

跨子域和主机的Cookie

如何解决《跨子域和主机的Cookie》经验,为你挑选了1个好方法。

在我使用开发环境和语言的组合编写的应用程序中,我需要从两个不同的子域访问cookie,每个子域位于单独的主机上.

使用后面www.mydomain.com的PHP代码设置cookie ,我试图从distant.mydomain.com单独的主机上访问它.

setcookie('token', base64_encode(serialize($token)), time()+10800, '/', '.mydomain.com');  

我正在尝试distant.mydomain.com使用以下代码访问cookie :

if (isset($_COOKIE['token'])) { /* do stuff */ }  

问题:distant.mydomain.com找不到cookie.if刚才提到 的声明返回false,即使cookie存在.

我已经验证了设置的cookie是mydomain.com(通过检查我的Firefox cookie).我想不出有什么理由不行.

使用相同的setcookie代码,我有一个独立运行在www.mydomain.com主机上的旧应用程序,该应用程序能够跨域访问cookie.这让我怀疑问题与单独的主机有关.

以防下列任何相关信息:
- www.mydomain.com是IIS 6.0
- distant.mydomain.com是Apache 2.2.9
- 两台服务器都使用PHP 5.2.x
- 两台服务器都在Windows Server 2003上运行

如果我能提供任何进一步的信息以便更好地描述问题,请告诉我!



1> nmjk..:

为了阅读此问题的任何人的利益,原始帖子中包含的代码和信息完全正确并且正常工作.

问题是当你引入其他技术时.例如,我已经了解到通过Python模块发送PHP代码,允许Django提供PHP文件/内容,这会改变脚本可访问的内容和不可访问的内容.

这最终是在Marc Novakowski的建议下发现的,他建议发送$_COOKIE到日志以找出其中的内容.

我还检查了$_SERVER$_GET.这$_GET让我感到空虚,因为我试图使用的设置并不像我想象的那么简单.正是这种错误的理解导致在原帖中没有包含关于Django的信息.

向所有回答此问题的人表示歉意感谢!

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有