Internet Explorer随机丢弃cakePHP中页面之间的会话

时间:2010-06-01 19:50:01

标签: internet-explorer session cakephp storage

我遇到了一个非常不寻常的错误,我的团队根本不知道如何解决。做了一些研究,我发现了一些我认为可行的类似解决方案,但唉没有。

以下是我的情况,如果我能提供额外的见解以帮助解决问题,请告诉我。

第一步是有人通过flash地图选择一个国家。 Flash通过URL传递此区域名称(以及日期),然后我们将其转换为会话。下一页不包含Flash,也不会显示所选区域,但它会保留下来以便进一步完成该过程。

一切都在Safari和Firefox中完美运行;但是,在IE中有时会出现意外结果。通常(但不总是)会话被完全删除,并且第一页和第二页之间不存储会话。

到目前为止,我采取了以下步骤,但未成功: 1.从媒体更改安全性 - >低 2.从True更改CheckUserAgent - >假 3.改变了PHP会话的存储 - >数据库

可能有用的一些其他信息: 我已经尝试在Debug中打印出会话数据(在我的视图文件上调试($ _ SESSION)并在config中调试设置为2)。在Internet Explorer中,当区域和日期未设置时,所有内容都按预期打印出来。

例如: 如果未设置区域和日期,则打印出NOTHING以进行调试。我没有在顶部获得会话详细信息,我也没有在页面底部获得正常的调用转储。

我没有在这些页面上使用重定向。

如果您对导致此问题或任何解决方案的原因有任何疑问,请与我们联系。我非常沮丧,尽可能多地尝试解决这个问题。

谢谢!

3 个答案:

答案 0 :(得分:3)

我建议在两个方向上跟踪服务器和浏览器之间交换的cookie信息。查看每个请求和响应的标头,看看是否在某个时刻发送了错误的cookie或没有cookie。这可能有助于您找到问题的根本原因。我有一段时间similar problem,我可以用这种方法解决。

IE的最佳方法是使用Fiddler

答案 1 :(得分:0)

我们在客户端部署时遇到了类似的问题,结果发现IE使用了一些代理服务器,并通过传递蛋糕应用程序的代理解决了它。

答案 2 :(得分:0)

当core.php中的“Security.level”设置为“high”时,通常会发生这种情况。尝试更改为中等或低。这之前我已经解决了这个问题。