2011-03-03 38 views
0

我正在用PHP创建一个简单的用户可以登录的网站。如何将会话信息传递给php中的子目录

在根目录做工精细所有网页,但是当我试着开始在子目录网页上的会话不会读它

这是我在网页的开始在子目录,这正如我所说的根目录下正常工作的每一页 -

session_start(); 
if(!session_is_registered(myusername)){ 
header("location: http://www.four-corners.org.uk/welcome.php"); 

几个人似乎有同样的问题,但我还没有找到一个解决办法

编辑 -

下面是我用来定义“名为myUsername”,并在会议

// Define $myusername and $mypassword 
$myusername=$_POST['myusername']; 
$mypassword=md5($_POST['mypassword']); 

// Register $myusername, $mypassword and redirect to file "login_success.php" 
session_register("myusername"); 
session_register("mypassword"); 
+0

如果你做了'var_dump($ _ SESSION)',你会得到什么吗? – Nalum 2011-03-03 17:11:49

+0

感谢@Nalum,我不确定把var_dump($ _ SESSION)放在哪里,但是我似乎把它放在任何地方,我想出了错误 - 解析错误:语法错误,D:\ four-corners.org中意外的T_STRING。 uk \ wwwroot \ destination \ australia.php on line 3 – 2011-03-03 18:48:31

+0

你能在“australia.php”的第3行显示你的代码吗? – Nalum 2011-03-04 15:58:06

回答

2

session_is_registered()已被弃用注册它,不应该被使用的代码。

相当于“现代”的代码将

session_start(); 
if (!isset($_SESSION[myusername])) { 
    ... 
} 

请注意,我复制你的“名为myUsername”完全吻合。如果前面没有$标志,则将其视为常量。如果您尚未使用define()来设置该常量,则它将评估为null,并在进入session_is_registered之前将其转换为空字符串。除非你的会话有一个空字符串作为键的值,否则每次都会重定向。

+0

而你刚刚完全改变了我的答案。在代码片段后面阅读段落。 – 2011-03-03 17:15:22

+0

你的意思是说'myusername'被定义为'defined'('myusername','something')' – 2011-03-03 17:19:47

+0

这就是我写段落的原因。 OP的代码片段没有引号,所以我重复了这一点,并解释了为什么它可能是错误的。 – 2011-03-03 17:21:30