我在 PHP 中有一个部分继承的 Web 应用程序,在使用 Fiddler 进行探索之后,我拥有比以前更多的数据。我要解决的问题是在 IE6/8 上不需要注销,但不是 FF/Chrome。如果用户在不同页面之间点击,登录数据 cookie 就会消失。
FF 与 IE 的行为不同,Fiddler(/IE) 和 Live HTTP Headers(/FF) 报告的信息几乎完全相同。
在 Firefox 中,cookie 似乎被视为 PHP 指定的那样:它们是在用户登录并选中“记住我”时创建的,并且只有在用户访问注销页面时才会被删除,并且它们有两周的到期日期。实时 HTTP 标头报告没有什么不同:当用户在页面之间单击时,cookie 永远不会被报告为被更改或删除。
但是在 IE 中,当用户在不同页面之间单击时它们会消失,并且 Fiddler 会报告,
Cookies / 登录 设置 Cookie:*******=已删除;expires=星期日,2008 年 6 月 29 日 21:07:46 GMT;路径=; 域=.********.com 设置 Cookie:*******=已删除;expires=星期日,2008 年 6 月 29 日 21:07:46 GMT;路径=; 域=.********.com
('deleted' 字面意思是从 Fiddler 的输出中引用的。我的代码中没有任何地方将任何一个值设置为 'deleted' 的魔术字符串。)
不仅 IE 和 Firefox 对网站的表达方式有不同的解释,而且 Fiddler 和 HTTP Live Headers 也相应地报告了网站行为的不同版本。
IE 和“已删除”有什么特别之处吗?这听起来可能很奇怪,但 IE 是否希望在每次页面查看时重新启用 cookie 或类似的东西?
除非用户通过访问注销 URL 请求它,否则我怎样才能安抚 IE 以保佑有问题的 cookie 未被服务器删除?