Почему я получаю undefined index при использовании cookie в PHP?

Если я использую следующий базовый код

if (!defined('NAME_COOKIE') ) define('NAME_COOKIE', "storedusername"); $cookie_domain = ".".$_SERVER['HTTP_HOST']; setcookie(NAME_COOKIE, $username,time() + (86400),"/", $cookie_domain); print $_COOKIE[NAME_COOKIE]; 

Сценарий умирает во время печати с неопределенной ошибкой индекса. Что я делаю не так?

Ваши строки:

 setcookie(NAME_COOKIE, $username,time() + (86400),"/", $cookie_domain); print $_COOKIE[NAME_COOKIE]; 

Что здесь происходит, так это то, что вы устанавливаете файл cookie, что означает, что строка * добавлена в заголовки, готовые для отправки с вашим контентом.

подумайте об этом как о очереди, и очередь отправляется в браузер только при отправке вашего контента.

поскольку ваш файл cookie все еще находится в очереди, его фактически не устанавливали до тех пор, пока страница не будет отправлена, и вы не вспомните страницу, а затем после вызова браузер отправит информацию о $_COOKIE cookie обратно в браузер, который, в свою очередь, $_COOKIE массив $_COOKIE .

Попробуйте подумать об этом так:

  • SetCookie ();
    • (ДОБАВЛЕН В КОРОЛЕЙ)
  • попробуйте $_COOKIE
    • (НЕ НАЙДЕНО)
  • отправить контент
    • (BROWSER SETS COOKIE TO FILE)
  • обновление
    • (BROWSER SENDS COOKIE INFO СЕРВЕРУ)
  • php компилирует
    • ($ _COOKIE, ЗАГРУЖЕННЫЕ ИЗ ДАННЫХ БРАУЗЕРА)
  • попробуйте $_COOKIE
    • (НАЙДЕННЫЙ)

Надеюсь это поможет.