PHP-Cookie不是';不行吗?

PHP-Cookie不是';不行吗?,php,cookies,setcookie,Php,Cookies,Setcookie,为什么我不能删除这个Cookie 当用户登录时,将运行authenticate\u user()。当用户注销时,将运行logout()。当类处于运行状态时,通过update_status()生成状态 我如何杀死状态cookie?无论我尝试什么,它都存在并且用户无法注销 [删除代码] 解决了 删除cookie时,必须指定cookie可以访问的目录 Not Deleted setcookie("status", "", (time()+3600), '/'); setcookie("status",

为什么我不能删除这个Cookie

当用户登录时,将运行authenticate\u user()。当用户注销时,将运行logout()。当类处于运行状态时,通过update_status()生成状态

我如何杀死状态cookie?无论我尝试什么,它都存在并且用户无法注销

[删除代码]

解决了

删除cookie时,必须指定cookie可以访问的目录

Not Deleted
setcookie("status", "", (time()+3600), '/');
setcookie("status", "", (time()-3600));

Deleted
setcookie("status", "", (time()+3600), '/');
setcookie("status", "", (time()-3600), '/');

状态是会话cookie吗?如果是,那么,
$\u COOKIE['status']
将不存在

使用
session\u destroy()
将其删除,请首先确保页面顶部有
session\u start()
(这可能是会话无法正常工作的原因)。

尝试此操作

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

这是一个灰色地带

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

此外,我还看到了一些行为,这些行为似乎是由浏览器将到期时间设置为过去的某个日期(过去的long,而不是时区)时挂在cookie上的行为所解释的


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

这并不能直接回答您的问题,因此我不想将其作为答案,但为什么您也使用cookie而不是在会话中完成所有操作,从而使您的生活变得困难?你做事的方式看起来更复杂,我真的看不出重点。如果你把一切都留在会话中,那么你就可以
session\u destroy
,它们就完成了。我似乎在你找到答案的同时回答了:)