即使我将其设置为删除,cookie也会继续回来

时间:2012-04-20 19:52:14

标签: php

好的,我使用此代码设置cookie

setcookie("search", "active", time()+3600);

我使用它来删除cookie

setcookie("search", "active", time()-3600);

我使用它来检查和检索cookie

<?
  if (isset($_COOKIE["search"]))
  {
      if ($_COOKIE["search"] === "active")
      {
          echo "cookies active"."<br/>";
          echo $_COOKIE["search"];
      }
      else
      {
          echo "cookies is not active";
      }
  }
  else
  {
      echo "no cookies";
  }
?>

但是即使我在刷新页面时使用上面指定的方法删除它,设置的cookie也会一次又一次地回来。

2 个答案:

答案 0 :(得分:1)

在PHP中删除cookie不会影响$ _COOKIE超级全局,因为在脚本运行之前会填充此数组。但是,当您加载下一页时,它应该不再出现在$ _COOKIE中。

答案 1 :(得分:1)

我不确定为什么会出现此错误,但在

之前已经看过了

示例:致电

setcookie ( "user", "Alex Porter", time () + 3600 );
setcookie ( "search", "active", time () + 3600 );

var_dump($_COOKIE);

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

仅输出

array(1) {
    ["user"]=>
    string(11) "Alex Porter"
}

预期结果

array(2) {
    ["user"]=>
    string(11) "Alex Porter"
    ["search"]=>
    string(6) "active"
}

结论

我认为你只会坚持一个cookie或者只是一次性删除所有的cookie

尝试

注意*确保setcookie始终位于页面顶部且没有输出

setcookie ( "search", "active", time () + 3600 );  
//setcookie ( "search", "", time () - 3600 );  // uncomment when you want to remove cookie
if (isset ( $_COOKIE ["search"] )) {
    if ($_COOKIE ["search"] === "active") {
        echo "cookies active" . "<br/>";
        echo $_COOKIE ["search"];
    } else {
        echo "cookies is not active";
    }
} else {
    echo "no cookies";
}