【问题标题】:php cookie doesn't updatephp cookie 不更新
【发布时间】:2011-12-30 09:57:42
【问题描述】:

我需要更新一个 cookie。我在通过 ajax 调用的 php 文件中执行此操作。这是代码:

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

cookie 不会更新,事实上,如果我在 setcookie 函数之后写 print_r($_COOKIE['items']),我会看到 $_COOKIE['items'] 与调用 setcookie 函数之前相同。我该怎么办?

【问题讨论】:

  • 要检索页面上的cookie,页面需要刷新一次。
  • 我希望您在将 $_POST['id'] 插入 cookie 之前将其清理干净? intval($_POST['id']) 会有很长的路要走。

标签: php cookies setcookie


【解决方案1】:

当您使用setcookie 时,不会将cookie 添加到超全局$_COOKIE。您必须自己执行此操作或重新加载页面。此外,由于您将 cookie 设置为空值,因此不会设置任何内容。

【讨论】:

    【解决方案2】:

    您必须为要访问的密钥设置值$_COOKIE

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

    Link to manual

    【讨论】:

      【解决方案3】:

      来自php.net/manual/function.setcookie.php

      在下一次加载页面之前,Cookie 不会变得可见 cookie 应该是可见的。测试 cookie 是否成功 设置,在 cookie 之前的下一个加载页面上检查 cookie 过期。过期时间通过 expire 参数设置。一个不错的方法 调试cookie的存在是通过简单地调用 print_r($_COOKIE);.

      因此,在 PHP 脚本的请求下,可以通过$_COOKIE 访问 cookie。

      【讨论】:

        【解决方案4】:

        您不能在同一实例/页面中设置和访问 cookie。您必须在 设置 之后进行重定向或刷新。

        此外,您应该这样做:

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

        【讨论】:

          【解决方案5】:

          这是设置 cookie 的语法

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

          当您使用函数 setcookie 创建 cookie 时,您必须指定三个参数。这些参数是 setcookie(name, value, expire):

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多