【问题标题】:Why does my cookie value not persist across pages?为什么我的 cookie 值不会跨页面持续存在?
【发布时间】:2011-08-22 08:41:27
【问题描述】:

我有一个 WordPress 网站,我们在其中使用会话独有的 cookie 跟踪用户。我的 functions.php 文件中有以下代码:

if (!session_id())
    session_start();

// session user id:
if (isset($_COOKIE["my_user_id"])) {
    $my_user_id = $_COOKIE["my_user_id"];
}
else {
    $my_user_id = uniqid();
    setcookie("my_user_id", $my_user_id);
}

在每一页上:

echo $_COOKIE["my_user_id"];

我希望这会在我四处点击时在每个页面上显示相同的用户 ID - 但是,不同页面的用户 ID 会发生变化,尽管在同一页面上多次点击时它保持相同。 cookie 值不会是站点范围的吗?

【问题讨论】:

  • 如果您已经在使用会话,为什么不直接使用会话 ID?
  • 发布页面之间的共同差异(例如目录、子域等)。如果不出意外,请发布一个可以使用的页面和一些无法使用的页面。
  • @icktoofay - 这只是一个例子 - 关键是为什么该值不存在。
  • @Jason- 它在所有页面上都“有效”,而不是跨页面。我试图了解哪些情况可能导致这种情况。我不能在这里发布我页面中的所有代码,我只想说上面的代码在所有页面中都是相同的。

标签: php session cookies


【解决方案1】:

Wordpress cookie 路径可能未设置为 / 值。请参阅setcookie 的参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多