PHP - 登录脚本不创建会话

时间:2012-11-25 04:01:44

标签: php session

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

这是我检查会话,

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的顶部,一切都很完美。

3 个答案:

答案 0 :(得分:1)

session_start();之后您$_SESSION['user'] = $row; 实际上你在die();命令之后得到了它。之后没有任何事情发生。

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

答案 1 :(得分:1)

最好将session_start()设置在最上面

答案 2 :(得分:1)

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

相关问题