1

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

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

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

4 回答 4

2

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

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

于 2013-03-07T13:04:23.297 回答
1

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

于 2013-03-07T13:07:21.913 回答
0

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

session_start();

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

于 2013-03-07T13:06:31.330 回答
0

类型

 Session_start();

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

echo $<variable_name>;

你可以看到价值

于 2013-03-07T13:20:40.760 回答