PHP:子目录中无法访问会话变量

时间:2013-03-07 13:02:48

标签: php session-variables subdirectory

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

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

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
}

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

感谢您的任何建议。

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

首先,您需要使用此

开始会话
session_start();

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

答案 3 :(得分:0)

输入

 Session_start();

在页面开头... 并回应变量..

echo $<variable_name>;

您可以看到值