无法像我使用PHP做的那样清除cookie


Not able to clear cookie what ever I do using PHP

我尝试了几种方法来清除localhost上的cookie。无论我做什么,我都无法在正常模式下在Chrome和Firefox中删除它们,但在Chrome的隐身和Firefox的私人浏览模式下运行良好。

这是我的代码:

$name = 'keepsignin';
if (isset($_SERVER['HTTP_COOKIE'])){
   $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
   foreach ($cookies as $cookie_id => $cookie_value){
       if($cookie_id === $name){
          self::set_cookie($cookie_id, $value, $expiry, $path, $domain);
       }
   }
}

手动清除cookie后,一切正常,但我无法删除已经存在的cookie。

$_SERVER['HTTP_COOKIE']是一个以分号分隔的键值对列表,格式为:

key1=value1;key2=value2;key3=value3;...

您在,但不是=

我想你可能在寻找这样的东西:

$name = 'keepsignin';
if (isset($_SERVER['HTTP_COOKIE'])) {
   $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
   foreach ($cookies as $cookie) {
       list($cookie_id, $cookie_value) = explode('=', $cookie);
       if($cookie_id === $name){
          self::set_cookie($cookie_id, $value, $expiry, $path, $domain);
       }
   }
}

请注意使用list()在一个操作中分配$cookie_id$cookie_value

我建议迭代$_COOKIE超全局,而不是自己解析$_SERVER['HTTP_COOKIE']