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 does not update, in fact if I write print_r($_COOKIE['items'])
after the setcookie function I see that $_COOKIE['items']
is the same that was before the call to setcookie function. How can I do?
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']}.']");
You have to set the value for the key to access with $_COOKIE
:
setcookie('items['.$_POST['id'].']', 'some_value');
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.
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.
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):
- name: The name of your cookie. You will use this name to later retrieve your cookie, so don't forget it!
- value: The value that is stored in your cookie. Common values are username(string) and last visit(date).
- expiration: The date when the cookie will expire and be deleted. If you do not set this expiration date, then it will be treated as a session cookie and be removed when the browser is restarted.
Note:- This will rewrite your cookie not update.
来源:https://stackoverflow.com/questions/8151893/php-cookie-doesnt-update