我正在尝试删除我在代码中的特定点设置的某些Cookie,但它们并未完全取消设置或删除。
我刚刚解开了这些问题,然后经过对这个问题的一些研究后,我看到很多人将cookie设置为空白,并且时间到期为负:
unset($_COOKIE["lifting365_last_name"]);
setcookie("lifting365_customer_id", "", time()-3600);
当我这样做然后var_dump($_COOKIE);
我设置的cookie没有被转储到屏幕上。它们似乎不再存在。
但是,如果我导航到另一个页面,那么cookie将恢复到我之前设置的状态。
有没有办法完全删除我的Cookie?对此的任何帮助将不胜感激。
答案 0 :(得分:1)
使用Unset命令只是在运行时从超级全局$ _COOKIES中删除数据,实际的cookie存储在用户计算机上,并在请求中传递,然后PHP填充到COOKIES全局。
为了删除cookie,cookie的PATH部分必须与您当前的路径相同或设置为“/”以在整个域中可用。
setcookie("TestCookie", "Some Data", 0, '/');
这使它在整个域中可用,并将在会话结束或关闭浏览器时到期。
然后删除:
setcookie("TestCookie", "", time()-3600, '/');
我还会检查服务器和客户端上的测试时间是否正确。