我有一个登录脚本,我已经能够成功地创建用户并登录。现在我的问题是每当我尝试使用我的保护页面的方法时,看看是否有“用户”的会话如果没有,它会将您引导回登录页面。
这是我检查会话,
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的顶部,一切都很完美。
答案 0 :(得分:1)
session_start();
之后您$_SESSION['user'] = $row;
实际上你在die();
命令之后得到了它。之后没有任何事情发生。
将session_start();
放在每个页面的PHP顶部(pref common.php,因为你有一个)而不只是一页。
答案 1 :(得分:1)
最好将session_start()
设置在最上面
答案 2 :(得分:1)
你需要把session_start();在您希望使用会话的每个页面上。