php cookie doesn't update

前端 未结 5 495
遥遥无期
遥遥无期 2021-01-21 17:08

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

相关标签:
5条回答
  • 2021-01-21 17:22

    You have to set the value for the key to access with $_COOKIE:

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

    Link to manual

    0 讨论(0)
  • 2021-01-21 17:26

    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):

    1. name: The name of your cookie. You will use this name to later retrieve your cookie, so don't forget it!
    2. value: The value that is stored in your cookie. Common values are username(string) and last visit(date).
    3. 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.

    0 讨论(0)
  • 2021-01-21 17:29

    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.

    0 讨论(0)
  • 2021-01-21 17:37

    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']}.']");
    
    0 讨论(0)
  • 2021-01-21 17:40

    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.

    0 讨论(0)
提交回复
热议问题