CodeIgniter 2.x会话和Internet Explorer

5

我在网上阅读了很多关于CodeIgniter及其与Internet Explorer的会话问题的文章。其中很多都集中在会话名称中没有下划线的问题上。这些文章似乎都是针对CI 1.x的。那么CI现在还存在这个问题吗?我尝试删除下划线,但并没有帮助。我还尝试添加了这段代码:

header ( 'P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"' );

但这也没有帮助。我们要做的具体是给我们的经销商提供一个链接,他们可以把它放在自己的网站上,然后打开我们网站的一部分。在我们的网站上,iframe很好用,但在我们经销商的网站上不行。这可能与跨域问题有关吗?
这不应该是CI现在已经解决的问题吗?我认为他们的本地会话不应该有这个问题。

这是否也可能与“过期”的cookie和IE有关?问题中的经销商位于澳大利亚。即使会话仍然有效,IE是否将其视为已过期? - sehummel
你试图打开的iframe是否在一个https页面上,并通过http调用iframe,或反之亦然? - Rooster
2
显然这与P3P有关。请参阅此链接:https://dev59.com/dHRC5IYBdhLWcg3wKtz2 - sehummel
更多不使用I框架的原因。 - Rooster
1个回答

3
几点需要注意:
  1. CodeIgniter与会话和IE没有任何问题。 IE在cookie中有下划线的问题;这与CI(版本1.7或2.x)无关。

  2. IE具有防止跨站点cookie的安全功能。因此,您需要确保它们不会启动并在cookie开始之前破坏它们。编辑:请参见此处以获取更多详细信息:http://codeigniter.com/forums/viewthread/121637/

  3. 请让您的经销商通过Firefox测试网站。您确定这实际上是IE的问题,还是一般性问题?

  4. sess_match_ipsess_match_useragent 设置为 FALSE,因为这可能会导致您所描述的问题。

  5. 确保已设置 cookie_domaincookie_path

  6. 确保已将 cookie_secure 设置为 FALSE (除非 <iframe> 经过 https)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接