【问题标题】:Session doesn't get passed from page to page with eval()会话不会通过 eval() 从一个页面传递到另一个页面
【发布时间】:2013-04-25 13:09:41
【问题描述】:

我正在尝试让会话在使用eval() 时从一个页面传递到另一个页面。基本上我有一个页面来处理所有其他请求,并通过eval() 调用获取页面输出。

一切正常,但由于某种原因,会话信息会在每次刷新时不断重置。不过,同样使用会话的登录系统不会在每次页面刷新时重置。

如果你去http://fretfast.com查看源代码,你可以看到$_SESSION从第221行开始的内容。

我的问题是,登录系统如何仍然工作,但其他会话信息不断重置? firstActivity 和 lastActivity 变量在配置页面上设置,该配置页面包含在处理所有请求的主文件中。这些只有在会话尚未开始时才会设置,如下所示:

if ( session_id() == '' ) {
    session_start();
    // set other $_SESSION['trail'] variables
}

requests 和 requestTimes 变量设置在通过 eval() 检索给定页面内容的对象内。

如果有人知道问题可能是什么或需要任何信息,我很乐意提供。提前致谢。

【问题讨论】:

  • 使用前必须先启动会话
  • 为什么你需要一个条件来开始会话?

标签: php session eval sessionid


【解决方案1】:

您的检查永远不会评估为真,因此 session_start() 永远不会执行。 除非您特别更改(或清空)会话 ID(通过代码或在您的 php.ini 中),否则它默认为 PHPSESSID(并且快速检查您的 url 的萤火虫确认)。

完全跳过检查,只需在文件开头发出 session_start()。

附:你为什么使用 eval() ?永远不要使用 eval() !

【讨论】:

  • 老实说,因为我想不出另一种实际的解决方法。我并不想在公开讨论中详细介绍该系统的工作原理,但如果您通过我的网站mdl.fm 给我发一封电子邮件,我将非常感激,以便我向您解释并获得您的建设性的批评或建议/建议。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 2017-04-08
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多