为什么IE7拒绝来自帧中页面的会话cookie?

时间:2009-09-01 15:43:53

标签: php session cookies internet-explorer-7 frames

我正在构建一个由其他网站加载到frameset的网站(其中父网站的域名不同)。

除IE7外,所有浏览器(包括IE6)都可以正常使用。它根本没有注册会话,根本不起作用。

网站是使用LAMP,MySQL 5和PHP 5实现的 - 是的,可能与实际问题无关,但仍值得一提。

有什么建议吗?

4 个答案:

答案 0 :(得分:5)

您可能需要尝试向网站添加P3P标题,如下所示:

header('P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"');

有关详细信息,请参阅此blog post

答案 1 :(得分:4)

这是标准的Internet Explorer安全设置。它不接受“第三方cookie”(即来自域以外的cookie,而不是地址栏中显示的cookie)。除了其他用途之外,这还可以防止广告客户为其他网站上展示的广告保存跟踪Cookie。

个人访问者可以在他们的偏好中关闭该设置,但除了突破框架集之外,您将无法绕过它。

答案 2 :(得分:2)

我认为如果您添加适当的P3P Policy,那么IE将允许使用Cookie。

我使用IBM P3P Policy Editor创建了一个。

答案 3 :(得分:0)

主机名/域名是否有下划线(即test_site.localdomain)?如果是这样,那可能是问题,因为IE在设置cookie之前对域名进行了一些基本验证(因此记住了会话),并拒绝了主机名中的下划线/下划线。