Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的cookie不能删除?_Php - Fatal编程技术网

Php 为什么我的cookie不能删除?

Php 为什么我的cookie不能删除?,php,Php,我有一个cookie,我使用以下命令设置它: setcookie( 'auth', 'cookie data' , time() + 3600, '/', '.mydomain.com', true, true ); 当我注销时,我调用一个函数来清除它,它会执行以下操作: setcookie( 'auth', "", time() - 3600, '/', '.mydomain.com', true, true ); 但是,如果我随后刷新页面,$\u COOKIE['auth']仍然被设置,

我有一个cookie,我使用以下命令设置它:

setcookie( 'auth', 'cookie data' , time() + 3600, '/', '.mydomain.com', true, true );
当我注销时,我调用一个函数来清除它,它会执行以下操作:

setcookie( 'auth', "", time() - 3600, '/', '.mydomain.com', true, true );
但是,如果我随后刷新页面,$\u COOKIE['auth']仍然被设置,并返回应该消失的旧“COOKIE data”值

我错过了什么

unset($_COOKIE['auth']);  
setcookie('auth', ''); 
确保您尚未发送标题

确保您正在发送标题。您是否正在输出其他内容?如果没有,则回显任何内容以确保在退出之前发送头

同时从cookie全局数组中删除

ifisset$\u COOKIE['auth']{ 取消设置$_COOKIE['auth']; }

如果会话名称为“auth”,则对会话数据的任何更改都可能重写会话cookie


服务器或客户端的时间是关闭的?它们应该是相同的时间。您可能应该选择一个低于time-3600的值,因为如果最终用户生活在不同的时区,这可能不起作用。改为1怎么样?检查您的HTTP流量。这会告诉你问题所在。嗨,试试mktime;虽然IE可能会忽略cookie请求,如果它在过去太远了。此时尚未发送头文件,但在脚本终止之前发送,也会从cookie全局文件中删除头文件,但您是否有机会调用您的会话“auth”?因为如果您在删除COOKIE之后更改会话数据,也可能会这样做。虽然我也讨厌代码转储,但在过去进行设置之前先取消$_COOKIE['auth']全局设置可以解决这个问题。