【问题标题】:PHP setcookie() doesn't work on several pagesPHP setcookie() 在多个页面上不起作用
【发布时间】:2012-08-07 19:09:26
【问题描述】:

我很难理解为什么 setcookie() 不能在多个页面上工作。

if (isset($_POST['group'])){ 
    $group = stripslashes($_POST['group']);
    setcookie(GSgroup, $group, time()+3600);
}

当一个带有多个选项的表单发布时,我使用上面的代码来设置一个 cookie。我在包含的页面上使用它,以便所有使用此功能的页面都将 cookie 设置为正确的组。

现在,当我在localhost 上尝试它时,它工作得非常好,但是在将它上传到一个实时网站后它就不再工作了。奇怪的是,在我在另一个包含的页面上使用它之后,它确实起作用了。

有人知道这是怎么回事吗?我真的很困惑。

如果您需要更多信息,请询问。

【问题讨论】:

  • GSgroup 是定义的常量吗?还是string?如果是string,则必须在其周围加上引号。
  • “它不起作用” - 很好地解释了您的问题,我正在联系 Charles Xavier 帮助我弄清楚“不起作用”对您意味着什么。

标签: php cookies setcookie


【解决方案1】:

请记住,cookie 是在页面加载时加载的,因此如果您在 PHP 脚本的第 5 行使用 setcookie 设置 cookie,那么在第 10 行使用 $_COOKIE 访问它不会给您 cookie 值。

您需要重新加载页面才能以这种方式访问​​ cookie 值。

我喜欢 this 已经提供的 PHP cookie 类。

【讨论】:

    【解决方案2】:
    setcookie('GSgroup', $group, time()+3600);
    

    【讨论】:

      【解决方案3】:
      if(isset($_POST['group'])){ 
      $group = stripslashes($_POST['group']);
      setcookie(GSgroup, $group, time()+3600);
      }
      

      这是实际的代码吗?因为setcookie函数中的第一个参数应该是字符串或者包含字符串的变量。

      【讨论】:

        猜你喜欢
        • 2020-10-02
        • 2015-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        • 1970-01-01
        相关资源
        最近更新 更多