PHP - Cookie不起作用?

时间:2010-12-16 11:22:16

标签: php cookies setcookie

为什么我不能删除这个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), '/');

3 个答案:

答案 0 :(得分:1)

状态是会话cookie吗?如果是,则$_COOKIE['status']将不存在。

使用session_destroy()将其删除,但请确保首先在页面顶部显示session_start()(这可能是您遇到会话无法解决问题的原因)。

答案 1 :(得分:0)

试试这个......

setcookie("status", "", time()-3600, "");

答案 2 :(得分:0)

这有点灰色。

首先要注意的是,您尝试通过将其到期时间设置为一小时来删除cvookie - 但您的脚本在哪个时区运行?客户在哪个时区?

此外,我已经看到了似乎可以通过浏览器挂在cookie上解释的行为,当过期时间随后被设置为过去的日期(过去 - 而不是时区的东西)。

单纯存在cookie不应被视为身份验证的证据 - 这应该是数据存储服务器端的句柄。因此,解决方案是将cookie的VALUE覆盖为无意义的值 - 而不是更改其到期时间。