我这样设置了一个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(自然地)不会被设置。我有办法处理吗?
答案 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");
或类似的内容