为什么我不能删除这个Cookie?
当用户登录authenticate_user()时运行。当用户注销logout()时运行。当类运行时,状态通过update_status()生成。
如何杀死状态cookie?无论我尝试什么,它都存在,用户无法注销。
[CODE REMOVED]
解决了它。
删除cookie时,您必须指定cookie可以访问的目录。
Not Deleted
setcookie("status", "", (time()+3600), '/');
setcookie("status", "", (time()-3600));
Deleted
setcookie("status", "", (time()+3600), '/');
setcookie("status", "", (time()-3600), '/');
答案 0 :(得分:1)
状态是会话cookie吗?如果是,则$_COOKIE['status']
将不存在。
使用session_destroy()
将其删除,但请确保首先在页面顶部显示session_start()
(这可能是您遇到会话无法解决问题的原因)。
答案 1 :(得分:0)
试试这个......
setcookie("status", "", time()-3600, "");
答案 2 :(得分:0)
这有点灰色。
首先要注意的是,您尝试通过将其到期时间设置为一小时来删除cvookie - 但您的脚本在哪个时区运行?客户在哪个时区?
此外,我已经看到了似乎可以通过浏览器挂在cookie上解释的行为,当过期时间随后被设置为过去的日期(长过去 - 而不是时区的东西)。
单纯存在cookie不应被视为身份验证的证据 - 这应该是数据存储服务器端的句柄。因此,解决方案是将cookie的VALUE覆盖为无意义的值 - 而不是更改其到期时间。