Мне нужно обновить файл 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 (имя, значение, срок действия):
Примечание. – Это будет перезаписывать ваш файл cookie без обновления.