2013-03-07 44 views
1

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

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

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

愚蠢的问题,但你所谓的session_start ()在subdir/file.php? – Ynhockey 2013-03-07 13:04:11

+0

你检查过这个吗? http://stackoverflow.com/questions/4957523/accessing-php-session-variable-from-different-paths – haim770 2013-03-07 14:26:10

+0

你叫它!总是人们忘记的明显事物。谢谢! – user1904273 2013-03-07 17:47:42

回答

2

你有没有开始在这些页面上的会话:session_start();

你必须开始在网页会话是你赋值会议,以及在您使用SEESION值的页面。

0

首先,你需要与这个

session_start(); 

启动会话,然后直到会议结束,你可以得到存储在会话这些变量可以在所有目录中使用和子目录

1

你应先添加session_start(),然后才能调用会话变量,以便$ _SESSION ['username']不会被定义或为空。

0

类型

Session_start(); 

页面... 的beggining和echo变量..

echo $<variable_name>; 

您可以看到价值