0

I know that Undefined Index questions have been asked and answered before. But please humor me for a second. I couldn't find the answer to this specific case. (And an unusual case it is.)

This works without a problem...

<?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>';

?>

...producing this output

sessionvalue 1
cookievalue foo

However, when I change the Name parameter in the setCookie to an array like so:

<?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>';

?>

I get the Undefined Index notice like so:

sessionvalue 1

Notice: Undefined index: cookievalue[loggedin] in /Applications/XAMPP/xamppfiles/htdocs/simpleauth/headersessioncookie.php on line 13
cookievalue

What can I declare, and how, to avoid the "Notice" in the second case?

thanks_in_advance
  • 2,603
  • 6
  • 28
  • 44

1 Answers1

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

should be

echo "cookievalue " . $_COOKIE['cookievalue']['loggedin'] . '<br>';
helllomatt
  • 1,331
  • 8
  • 16