尝试查找cookie时出现PHP错误

时间:2013-06-07 13:31:26

标签: php cookies

我这样设置了一个cookie

$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 个答案:

答案 0 :(得分:6)

尝试使用:

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

因为您当前指的是全局$_COOKIE而不是个别密钥

答案 1 :(得分:4)

$cookie = isset($_COOKIE["NAME"]) ? $_COOKIE["NAME"] : null;

您可以在使用Cookie时继续检查isset($cookie)

答案 2 :(得分:1)

是的,在访问之前检查isset($_COOKIE['NAME'])。或者,您可以完全关闭该错误消息(不是一个好主意,它通常会在大多数服务器上打开)。为此,请参阅documentation。在这种情况下,您可能希望关闭E_NOTICE。

答案 3 :(得分:1)

您需要检查isset($_COOKIE["NAME"])array_has_key($_COOKIE, "name");或类似的内容