I need to update a cookie. I do that in a php file called via ajax. This is is the code:
setcookie(\'items[\'.$_POST[\'id\'].\']\');
The cookie
You have to set the value for the key to access with $_COOKIE
:
setcookie('items['.$_POST['id'].']', 'some_value');
Link to manual
This is syntax for setting a cookie
setcookie(name, value, expire, path, domain);
When you create a cookie, using the function setcookie, you must specify three arguments. These arguments are setcookie(name, value, expiration):
Note:- This will rewrite your cookie not update.
When you use setcookie
is doesn't add the cookie to the superglobal $_COOKIE
. You will have to do that yourself or reload the page. Also, since you are setting the cookie with an empty value, nothing would be set.
You cannot set and access a cookie in the same instance/page. You have to do a redirect or refresh after setting it.
In addition, you should do something like this instead :
setcookie("id","items['.{$_POST['id']}.']");
From php.net/manual/function.setcookie.php:
Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.
So the cookie will be accessible via $_COOKIE
at the request of the PHP script.