0

このようにクッキーを設定しました

$id = 5; //just for clarification
setcookie("NAME", $id, time()+3600*24);

そしてこうやって探して

$cookie = $_COOKIE["NAME"];

この Cookie が設定されているかどうかを確認します (使用:if(isset($cookie)))を使用すると、完全に機能します。

問題は、このコードは Cookie が設定されている場合にのみ機能しますが、設定されていない場合は次のエラーが発生することです。

Notice: Undefined index: NAME in [path], line [line]

場合によっては、Cookie が設定されないことがあります (当然のことです)。私がそれを処理できる方法はありますか?

4

4 に答える 4

6

使用してみてください:

if (isset($_COOKIE['NAME'])){
  echo "Cookie Is Set";
  // Continue cookie validation without the echo.
}

$_COOKIE現在、個別のキーではなくグローバルを参照しているため

于 2013-06-07T13:33:34.217 に答える
4
$cookie = isset($_COOKIE["NAME"]) ? $_COOKIE["NAME"] : null;

isset($cookie)クッキーを使用するたびに確認を続けることができます

于 2013-06-07T13:34:32.577 に答える
1

はい、isset($_COOKIE['NAME'])アクセスする前に確認してください。または、そのエラー メッセージを完全にオフにすることもできます (通常、ほとんどのサーバーではデフォルトでオンになっているため、お勧めできません)。それについては、ドキュメントを参照してください。この場合、E_NOTICE をオフにする必要があります。

于 2013-06-07T13:33:46.487 に答える
1

あなたはチェックする必要がありますisset($_COOKIE["NAME"])か、またはarray_has_key($_COOKIE, "name");そのようなもの

于 2013-06-07T13:34:15.597 に答える