我刚刚发现在使用我的某个页面时我在IE中遇到了问题。 我设置cookie:
setcookie('page', '12345', '2000000', '/');
如果我登录,我会重新设置再次调用该功能的cookie。 在Firefox中一切正常,因为旧cookie被删除但在IE中两个cookie都保留? 怎么会发生这种情况?这不是非法的吗?
现在我用以下方法解决了这个问题:
setcookie('page', '', time() - 3600, '/');
setcookie('page', '1234', '2000000', '/');
这是可行的解决方案还是我错过了什么?
答案 0 :(得分:4)
According to the documentation,这是删除Cookie的正确方法。
答案 1 :(得分:1)
只是预感,但似乎时间戳的到期值非常低,因此cookie可能会立即到期(即会话结束时)。也许这样的事情会让IE混淆允许多个cookie?
您应该使用time()
代替设置到期日期,例如:
setcookie('page', '12345', time() + 3600, '/');
是的,你的解决方案对我来说似乎很好。
答案 2 :(得分:0)
我遇到了类似的问题。
我多次重新加载我的页面,每次加载时都使用session_start()。 JavaScript设置我在PHP中使用的cookie。当客户端是Internet Explorer时,$ _ENV [“HTTP_COOKIE”]包含每个cookie的多个条目。 Firefox不会发生这种情况。
到目前为止,尽管我已经知道了,当在名为x.y.z的域中执行代码时,Internet Explorer会发送x.y.z的cookie,然后是y.z的cookie。 PHP然后将两组cookie放入$ _ENV [“HTTP_COOKIE”]。
也许这可能被视为PHP错误,也许不是。恕我直言,这是一个Internet Explorer的错误。我在这里发布,希望它可以帮助您解决问题。