【问题标题】:wordpress: session_id different in functions.php compared to all other *.php fileswordpress:与所有其他 *.php 文件相比,functions.php 中的 session_id 不同
【发布时间】:2017-11-04 23:28:52
【问题描述】:

我在 wordpress 中使用 php 会话。如果我从我制作的几个自定义 php 页面中的任何一个打印 session_id,它就是相同的 session_id(所以我可以从这些页面中的任何一个访问 _SESSION 变量)。但是,如果我尝试在我的 functions.php 文件中读取会话变量(用于短代码映射),我将无法访问 _SESSION 变量,因为 session_id 仅在此文件(functions.php)中不同。运行 functions.php 文件时,似乎会话未设置(我看不到任何地方可以完成此操作)。我试图弄清楚如何设置全局会话,以便我的所有文件都可以设置/读取会话变量。有什么想法吗?

【问题讨论】:

  • 在 WordPress 中使用 $_SESSION 是个坏主意。 WordPress 试图成为无状态的,并且会话很难正常工作。我会强烈建议您转而使用 $_COOKIE 来存储您的数据,并利用许多文章提供有关如何在 WP 中使用 cookie 的说明。

标签: php wordpress session


【解决方案1】:

这可能是因为 wordpress 使用了不同的 cookie 名称或不同的 cookie 设置。

您要做的是确保您在同一个域中(您可以在域前加上一个点来设置跨域 cookie)并且使用相同的 cookie 路径。

【讨论】:

  • 谢谢鲁本...您能否详细说明我何时/何地为域添加前缀?我是在开始会话时还是在设置会话变量时这样做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2018-12-14
  • 2015-02-28
  • 1970-01-01
相关资源
最近更新 更多