未定义的索引:setCookie的Name参数中的数组

时间:2014-10-07 14:57:31

标签: php setcookie undefined-index

我知道之前已经提出并回答了未定义的索引问题。但请幽默我一秒钟。我无法找到这个具体案例的答案。 (这是一个不寻常的案例。)

这没有问题......

<?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;在第二种情况下?

1 个答案:

答案 0 :(得分:1)

echo "cookievalue " . $_COOKIE['cookievalue[loggedin]'] . '<br>';

应该是

echo "cookievalue " . $_COOKIE['cookievalue']['loggedin'] . '<br>';