2014-10-30 57 views
-3

作为一个非常简单的登录脚本的一部分,我使用用户名创建了一个会话变量(或至少这是我认为它被称为),并用它来检查是否没有用户登录该变量在登录脚本设置,使用下面的代码:会话变量清除本身(PHP)

if($count==1) { 
    session_start(); 
    $_SESSION['ed_user'] = $ed_user; 
    header("location:main.php"); 
} else { 
    echo "Incorrect user or password, please try again."; 
} 

我知道这个if语句的第一部分运行,因为我不与错误呈现信息。在它指向的页面(main.php),第一行代码应检查是否设置了$_SESSION['ed_user'],如果不是这种情况,则返回index.php。这是用代码完成的:

if(!$_SESSION['ed_user']){ 
    header("location:index.php"); 
} 

但是,它似乎总是让我回到index.php登录后。我试图使用以下行来检查变量是否存在:

<p><?php echo"Current user: ".$_SESSION['ed_user'];?></p> 

这表明变量是空的。我在这里做错了什么?

回答

2

你需要调用

session_start(); 

在每一页上。

+0

那么这似乎有点违反直觉,但谢谢:-)。它正在工作。 – Noceo 2014-10-30 14:10:27

+0

@Noceo:不用担心,会话是一种痛苦。 – Dai 2014-10-30 14:11:51

1

在您main.php文件...

session_start(); 
if(!isset($_SESSION['ed_user'])){ 
    header("location:index.php"); 
} 

需要调用session_start()访问会话变量。

+0

非常感谢。 – Noceo 2014-10-30 14:10:53