2011-11-16 47 views
1

我需要更新cookie。我在通过ajax调用的php文件中这样做。这是代码:php cookie不更新

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

cookie不更新,其实如果我的SetCookie函数我看到$_COOKIE['items']是,这是在调用SetCookie函数之前相同的后写print_r($_COOKIE['items'])。我能怎么做?

+0

要在页面上放弃cookie,页面需要刷新一次。 – Rafee

+1

我希望你在将Cookie插入Cookie之前清理了$ _POST ['id']'?'intval($ _ POST ['id'])'会有很长的路要走。 – Geert

+0

[在setcookie()之后立即访问$ _COOKIE](http://stackoverflow.com/questions/3230133/accessing-cookie-immediately-after-setcookie) – outis

回答

3

您无法在同一个实例/页面中设置和访问cookie。你必须在设置之后做一个重定向或刷新。

此外,你应该做这样的事情,而不是:

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

当您使用setcookie是不添加cookie到超全球$_COOKIE。你必须自己做或重新加载页面。另外,由于您将cookie设置为空值,因此不会设置任何内容。

0

你要设置的值的键与$_COOKIE访问:

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

Link to manual

0

php.net/manual/function.setcookie.php

饼干不会成为可见,直到的下一个加载页面,该页面应该是可见的。要测试cookie是否成功设置,请在Cookie 过期之前检查下一个加载页面上的cookie。过期时间通过expire参数设置。通过简单地调用 print_r($ _ COOKIE);来调试存在的Cookie的一个不错的方法是 ;.

所以这个cookie可以通过PHP脚本的请求通过$_COOKIE访问。

0

这是设置cookie

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

当您创建一个cookie,使用函数的setcookie语法,你必须指定三个参数。这些参数是setcookie(名称,值,到期日期):

  1. name:您的cookie的名称。您将使用此名称以后检索您的cookie,所以不要忘记它!
  2. value:存储在您的cookie中的值。常用值是用户名(字符串)和上次访问(日期)。
  3. 过期:cookie过期并被删除的日期。如果您未设置此过期日期,则会将其视为会话Cookie,并在浏览器重新启动时删除。

注意: - 这将重写您的cookie不更新。