0

OK、このコードを使用して Cookie を設定します

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

これを使用してCookieを削除します

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

そして私はこれを使ってクッキーをチェックして取得します

<?
  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"
}

結論

1 つの 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 に答える