Я знаю, что вопросы с неопределенным индексом задавались и на них давались ответы. Но, пожалуйста, ублажи меня на секунду. Я не мог найти ответ на этот конкретный случай. (И это необычный случай.)
Это работает без проблем …
<?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
Однако, когда я изменяю параметр Name в setCookie на массив, примерно так:
<?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
Что я могу объявить и как избежать «Уведомления» во втором случае?
echo "cookievalue " . $_COOKIE['cookievalue[loggedin]'] . '<br>';
должно быть
echo "cookievalue " . $_COOKIE['cookievalue']['loggedin'] . '<br>';
Других решений пока нет …