【问题标题】:PHP: Session vaiables not accessible in sub-directoryPHP:子目录中无法访问会话变量
【发布时间】:2013-03-07 13:02:48
【问题描述】:

我遇到了一个奇怪的问题。我有一个受密码保护的站点,我的大部分文件都在主目录中。所有文件在登录前都无法访问,但在设置会话变量后变得可访问。我也使用其他会话变量,这些文件都可以访问所有这些变量。

但是,为了方便起见,我将一堆与一个主题相关的文件转储到一个子目录中。但是,我发现此子目录中的文件似乎无法访问会话变量。

php

login.php
$_SESSION['username'] = "Bob"; //sets session variable.

subdir/file.php
echo $_SESSION['username']; //echoes nothing.
$username = $_SESSION['username'];
if (!isset($username)) {
echo "var not set"; //echoes out
}

以前有人遇到过这个问题吗?会是什么?

感谢您的任何建议。

【问题讨论】:

  • 愚蠢的问题,但是你有没有在 subdir/file.php 中调用 session_start() ?
  • 你检查过这个吗? stackoverflow.com/questions/4957523/…
  • 你叫它!总是忘记一些显而易见的事情。谢谢!

标签: php session-variables subdirectory


【解决方案1】:

您是否在这些页面中开始了会话:session_start();

如果您将值分配给会话,则必须在页面中以及在您使用视觉值的页面上启动会话。

【讨论】:

    【解决方案2】:

    您应该在调用会话变量之前添加 session_start(),这样您的 $_SESSION['username'] 就不会未定义或为空。

    【讨论】:

      【解决方案3】:

      首先你需要用这个开始会话

      session_start();
      

      然后直到会话结束,您可以获得存储在会话中的那些变量,可以在您的所有目录和子目录中使用

      【讨论】:

        【解决方案4】:

        键入

         Session_start();
        

        在页面的开头... 并回显变量..

        echo $<variable_name>;
        

        你可以看到价值

        【讨论】:

          猜你喜欢
          • 2015-05-03
          • 1970-01-01
          • 2014-06-25
          • 2021-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多