Internet Explorer 在 cakePHP 中随机断开页面之间的会话。

4
我遇到了一个非常不寻常的错误,我所在的团队真的不知道如何解决。经过一些研究,我发现了一些类似的解决方案,但是没有成功。
这是我的情况,如果需要提供更多信息以帮助解决问题,请告诉我。
第一步是有人通过Flash地图选择一个国家。Flash通过URL传递这个区域名称(以及日期),然后我们将其转换为会话。下一页不包含Flash,也不显示选择的区域,但它会保留它以备后续处理。
在Safari和Firefox中,一切都运行得很完美;但是,在IE中,有时会出现意外结果。经常(但并非总是),会话完全丢失,并且在第一和第二页之间没有存储任何会话。
迄今为止我采取了以下措施,但都没有成功: 1. 将安全性设置从Medium-> Low 2. 将CheckUserAgent从True-> False 3. 将会话存储方式从PHP-> Database更改
一些可能有用的附加信息: 我尝试在Debug中打印会话数据(在我的视图文件中使用debug($ _SESSION),并在config中将debug设置为2)。在Internet Explorer中,除了区域和日期没有被设置之外,一切都按预期输出。
例如: 如果未设置区域和日期,则不会为调试打印任何内容。我在顶部没有得到会话详细信息,底部也没有得到正常的调用转储。
这些页面上没有重定向。
请告诉我是否有任何想法可以解决此问题或提供任何解决方案。我已经尽力解决了这个问题,而且非常沮丧。
谢谢!
3个回答

3
我建议追踪服务器和浏览器之间交换的cookie信息,查看每个请求和响应的标头,并查看是否在某个时点发送了错误的cookie或未发送cookie。这可能有助于找到问题的根本原因。我曾经遇到过一个类似的问题,使用这种方法解决了问题。若想了解更多细节,请参考此链接
对于IE来说,最好的方法是使用Fiddler工具。

0
我们在一个客户部署中遇到了类似的问题,结果发现IE使用了某个代理服务器,通过为cake应用程序绕过代理解决了这个问题。

0

这通常发生在您的core.php中将"Security.level"设置为"high"时。尝试更改为medium或low。这在我之前解决了这个问题。


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