我想将用户重定向到索引页面,如果他们在尝试直接转到另一个页面(例如“搜索或收件箱”)时没有记录。现在这就是我所做的,但它会一直重定向已记录和未记录。
$u = "";
$isOwner = "no";
if($u == $log_username && $user_ok == true) {
$isOwner = "yes";
}
if($isOwner != "yes") {
header("location: index.php");
exit();
}
最好的办法是什么?
答案 0 :(得分:0)
当用户登录到您的应用程序时,您希望在用户会话中设置一个标记,表明他/她已经过适当的身份验证并登录。在后续请求中,根据会话变量的内容,您将用户重定向到登录页面或让用户继续在您的应用程序中继续。以非常简单的形式,它看起来像这样。
在您的登录处理程序中,例如login.php中,
if (authenticate($_POST['username'], $_POST['password']) {
$_SESSION['authenticated'] = true;
# redirect to the main page
}
现在,在后续请求中,在应用程序的早期,在调用适当的处理程序之前,
if (empty($_SESSION['authenticated'])) {
# redirect to login page
}
# invoke handlers for the request
为此,您需要确保PHP会话自动启动或在应用程序流程的早期使用session_start()手动启动它。
答案 1 :(得分:0)
我后来尝试了这种方法,它对我来说非常适合。
if($user_ok == true){}
else{
header("location: login.php?u=".$_SESSION["username"]);
exit();
}
我只想感谢你们的所有想法。