0

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

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

我用它来删除cookies

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

我用它来检查和检索cookies

<?
  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 也会一次又一次地返回。

4

2 回答 2

1

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

于 2012-04-20T19:56:47.733 回答
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";
}
于 2012-04-20T20:21:52.937 回答