PHP $ _COOKIE возвращает ноль, НО Chrome показывает cookie с правильным значением - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь установить пользовательские куки в WordPress безуспешно, поэтому я подумал, что это может быть из-за кеша и настроил небольшой тест на моем локальном apache и у меня такая же проблема.

В Chrome куки«chat_guest» и «chat_guest_hash» видны, но при попытке получить их значение возвращает «null».

В примере кода я использую var_dump, чтобы увидеть, является ли их файл cookie со значением, но он возвращает array(0) { }и тем не менее, файлы cookie отображаются в Chrome!

<?php



if(!isset($_COOKIE['chat_guest'])) {
    if (!setcookie('chat_guest', "test1", 365 * 3000, "/")) die("?? 1");
    if (!setcookie('chat_guest_hash', "test", 365 * 3000, "/")) die("?? 2");
}

echo var_dump($_COOKIE);
?>

Я просто не могу отойти от этого.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

$ _ COOKIE устанавливается при загрузке страницы из-за состояния веба без сохранения состояния.Использование setcookie () добавит значения к $ _COOKIES только в следующем запросе.

Если вы хотите немедленного доступа, вы можете установить $ _COOKIE ['chat_guest'] самостоятельно:

setcookie('chat_guest', "test1", time() + (86400 * 30), "/");
$_COOKIE['chat_guest'] = "test1";
0 голосов
/ 07 декабря 2018

Вы должны использовать глобальный тег $ _COOKIE, как вы делаете - так же, как $ _SESSION или $ _SERVER ... Хотя вы не можете установить cookie таким образом.Вот правильный способ хранения файлов cookie в течение ~ одного месяца:

    if (!isset($_COOKIE["chat_guest"])){ //checks if the cookie "chat_guest exists
       setcookie("chat_guest", "test1", time() + (86400 * 30), "/"); 
      //setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
    }

   print_r($_COOKIE); // prints all data stored within the super global $_COOKIE

Не забудьте обновить браузер при работе с такими файлами cookie

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...