【问题标题】:how to change the session scope in php?如何更改 php 中的会话范围?
【发布时间】:2011-05-16 06:29:39
【问题描述】:

我正在使用 php 开发 Web 应用程序。我使用会话将信息从一页传递到另一页。但是当涉及到其他页面时,会话会被重置。我认为这是由于会话范围(页面范围)错误!我对么?如果是问题,那么如何克服这个问题?请帮我。提前致谢!

【问题讨论】:

  • 您是否在每个页面的顶部使用 session_start() ?我不认为 $_SESSION 真的有一个范围,因为一旦会话开始,它就可以在任何地方访问。阅读这篇文章,它应该可以帮助你uk2.php.net/manual/en/language.variables.superglobals.php
  • 请通过比较会话的 ID 来检查您是否在两个页面上使用相同的会话(请参阅session_id)。

标签: php web-applications session


【解决方案1】:

您需要将session_start() 放在每个页面的开头 - 这将启动一个新会话,或者在您的情况下恢复一个存储的会话,以及它的变量。除非您在导航到新页面之前调用 session_destroy(),否则这将起作用。

希望这会有所帮助,

詹姆斯

【讨论】:

  • @dimitris misriotis - 一个好主意,但整个框架仅适用于 session_id()?此外,只使用session_start() 就很容易——我认为对于这个特定的应用程序来说,一个大型框架可能会过大。但是,如果您想要一整套功能,这将非常方便。
  • 你是对的......仅仅因为一件事不是充分的理由
  • 谢谢 :-) 框架是一个非常宝贵的工具,但不能用于单一功能 ;-)
【解决方案2】:

Session 没有作用域,可能是你在代码中的某个地方调用了session_destroy()

【讨论】:

    猜你喜欢
    • 2013-01-17
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多