我知道之前已经提出并回答了未定义的索引问题。但请幽默我一秒钟。我无法找到这个具体案例的答案。 (这是一个不寻常的案例。)
这没有问题......
<?php
session_start();
if ( ! isset ( $_SESSION['loggedin'] ) ) {
$_SESSION['loggedin'] = FALSE;
}
$expiry = time()+60*60*9000;
setcookie('loggedin', 'foo', $expiry);
echo "sessionvalue " . $_SESSION['loggedin'] . '<br>';
echo "cookievalue " . $_COOKIE['loggedin'] . '<br>';
?>
...产生此输出
sessionvalue 1
cookievalue foo
但是,当我将setCookie中的Name参数更改为如下数组时:
<?php
session_start();
if ( ! isset ( $_SESSION['loggedin'] ) ) {
$_SESSION['loggedin'] = FALSE;
}
$expiry = time()+60*60*9000;
setcookie('cookievalue[loggedin]', 'foo', $expiry);
echo "sessionvalue " . $_SESSION['loggedin'] . '<br>';
echo "cookievalue " . $_COOKIE['cookievalue[loggedin]'] . '<br>';
?>
我得到了未定义的索引通知:
sessionvalue 1
Notice: Undefined index: cookievalue[loggedin] in /Applications/XAMPP/xamppfiles/htdocs/simpleauth/headersessioncookie.php on line 13
cookievalue
我可以宣布什么,以及如何避免&#34;通知&#34;在第二种情况下?
答案 0 :(得分:1)
echo "cookievalue " . $_COOKIE['cookievalue[loggedin]'] . '<br>';
应该是
echo "cookievalue " . $_COOKIE['cookievalue']['loggedin'] . '<br>';