我有一个使用相当常见的身份验证方案的PHP站点。
我们总是会遇到一些登录有问题的人,因为他们没有设置使用会话cookie,或者他们在使用转发页面时遇到问题等等。
但是,最近我们有很多人无法登录IE。修复其会话cookie设置并清除缓存没有帮助,但如果他们在同一台计算机上使用firefox / opera,他们可以登录。我很确定它是IE的问题,而不是介于两者之间的任何问题。
是否有人知道IE 7最近会对会话Cookie产生任何影响?
更新
我最近在登录后立即实施了session_regenerate_id()调用,因为现在有些情况下用户可能会使用现有的会话,但那是很久以前的事了。
答案 0 :(得分:3)
我的第一步是找到一个可以使用Firefox而不是IE登录的用户,然后针对两者运行Fiddler,以查看登录过程的HTTP请求/响应对的差异。这应该至少可以让你更好地了解在哪里看。
答案 1 :(得分:1)
如果IE的安全设置被启动(这在公司环境中尤为常见),或者您登录的页面位于框架或iframe中,那么可能是保存cookie的原因。如果是这种情况,您需要做的就是设置P3P策略HTTP标头。 Here's the best description that I could find on how to implement them.
答案 2 :(得分:0)
我没有听到任何消息。虽然,这正是我在所有公共项目中使用无cookie会话的原因。我相信ASP.Net内置了这个,但我更喜欢使用自己的实现。在页面之间传递查询字符串sessionid参数,并将其绑定到数据库记录或其他数据存储更加可靠。