【问题标题】:PHP setcookie won't workPHP setcookie 不起作用
【发布时间】:2016-07-26 04:48:34
【问题描述】:

我对这个问题完全感到困惑。设置 cookie 应该是世界上最简单的事情,但无论出于何种原因,它都无法正常工作。目前我只是想让一个测试脚本工作。它看起来像这样:

    $cookie_name = "user";
    $cookie_value = "John Doe";

    setcookie($cookie_name, $cookie_value, time() + 86400 * 30, "/");
    setcookie("act", "sj", time() + 86400 * 365);
    setcookie("bbba", "Hello", time() + 86400);

    echo $_COOKIE['act'];
    echo $_COOKIE['bbba'];
    echo $_COOKIE['user'];

这些 cookie 都不会设置。什么都不会回显,使用检查器时我找不到 cookie。我尝试了以下方法: - 将 echo $_COOKIE 放在同一目录中的另一个文件中。 - 有和没有 ob_start() 和 ob_flush() - 使用“/”、“/direcotry”而不是任何东西作为路径 - 将文件移动到根目录,看看它是否在那里工作。

似乎没有任何效果,我看不出可能有什么问题。其他使用 cookie 的脚本在同一个域上工作 - 该域位于网络酒店。

谁能看到这里的问题?

【问题讨论】:

  • 在这段代码之前是否有任何其他输出被发送到浏览器,甚至是杂散的换行符或空白字符?
  • 谢谢你的小费,吃花生酱。这是一个空格。

标签: php cookies


【解决方案1】:

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

它来自 php 手册。如果您确实希望在声明的同一页面中设置 $_COOKIE 数组中的值。

$_COOKIE['key'] = 'value';
echo $_COOKIE['key'];

PHP Manual setcookie

【讨论】:

  • 我的第一个想法也是,但是当他说I've tried the following: - Placing the echo $_COOKIE in another file...
【解决方案2】:

问题是由文档开头的空格引起的。

【讨论】:

    猜你喜欢
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    相关资源
    最近更新 更多