php cookie не обновляет

Мне нужно обновить файл cookie. Я делаю это в php-файле, который называется через ajax. Это код:

setcookie('items['.$_POST['id'].']'); 

Файл cookie не обновляется, на самом деле, если я пишу print_r($_COOKIE['items']) после функции setcookie, я вижу, что $_COOKIE['items'] тот же, что был до вызова функции setcookie. Как я могу сделать?

Вы не можете установить и получить доступ к файлу cookie в том же экземпляре / странице. После установки необходимо выполнить перенаправление или обновление.

Кроме того, вы должны сделать что-то вроде этого:

 setcookie("id","items['.{$_POST['id']}.']"); 

Вы должны установить значение для доступа к ключу с помощью $_COOKIE :

 setcookie('items['.$_POST['id'].']', 'some_value'); 

Ссылка на руководство

От php.net/manual/function.setcookie.php :

Куки-файлы не станут видимыми до следующей загрузки страницы, на которой должен отображаться файл cookie. Чтобы проверить, был ли файл cookie успешно установлен, проверьте, будет ли файл cookie на следующей странице загрузки до истечения срока действия файла cookie. Время истечения устанавливается через параметр expire. Хорошим способом отладки существования файлов cookie является просто вызов print_r ($ _ COOKIE) ;.

Таким образом, cookie будет доступен через $_COOKIE по запросу скрипта PHP.

Когда вы используете setcookie вы не добавляете cookie в $_COOKIE . Вам придется сделать это самостоятельно или перезагрузить страницу. Кроме того, поскольку вы устанавливаете cookie с пустым значением, ничего не будет установлено.

Это синтаксис для настройки файла cookie

 setcookie(name, value, expire, path, domain); 

Когда вы создаете файл cookie, используя функцию setcookie, вы должны указать три аргумента . Этими аргументами являются setcookie (имя, значение, срок действия):

  1. name: имя вашего файла cookie. Вы будете использовать это имя, чтобы позже получить ваш файл cookie, поэтому не забывайте об этом!
  2. value: значение, которое хранится в вашем файле cookie. Общие значения: имя пользователя (строка) и последний визит (дата).
  3. expiration: дата истечения срока действия файла cookie и его удаления. Если вы не установите эту дату истечения срока действия, она будет рассматриваться как файл cookie сеанса и будет удалена при перезапуске браузера.

Примечание. – Это будет перезаписывать ваш файл cookie без обновления.