0

我有一个登录脚本,我已经能够成功地创建用户并登录。现在我的问题是,每当我尝试使用我的页面保护方法时,如果没有的话,我会查看是否有“用户”的会话将您引导回登录页面。

这是我检查会话,

require("common.php"); 


if(empty($_SESSION['user'])) 
{ 

    header("Location: login"); 

    die("Redirecting to login"); 
} 

这是我设置会话的地方,我只设置了 session_start(); 在 login.php 上

if($login_ok) 
    { 

        unset($row['salt']); 
        unset($row['password']); 

        $_SESSION['user'] = $row; 

        header("Location: home?worked=1"); 
        die("Redirecting to: home?worked=1");
        session_start(); 
    } 
    else 
    { 
        print("Login Failed."); 
        $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); 
    } 
} 

这是做什么的,是我登录,它会处理并将我带到我的主页,然后将标题处理回登录页面,就像我没有登录一样。我测试了一个错误的登录,它告诉它它正确的登录。

感谢您的帮助,我在这里拉头发!

死灵

编辑

我移动了 session_start(); 到我的common.php 的顶部,一切都很完美。

4

3 回答 3

1

You have session_start();after$_SESSION['user'] = $row; 实际上你有它在一个die();命令之后。之后什么也没有发生。

session_start();PHP 放在每一页的顶部(首选 common.php,因为你有一个),而不仅仅是一页。

于 2012-11-25T04:02:50.850 回答
1

最好设置session_start()在上面

于 2012-11-25T04:06:11.673 回答
1

你需要把 session_start(); 在您要使用会话的每个页面上。

于 2012-11-25T04:06:49.713 回答