如果未记录则重定向用户

时间:2014-02-27 13:04:59

标签: php

我想将用户重定向到索引页面,如果他们在尝试直接转到另一个页面(例如“搜索或收件箱”)时没有记录。现在这就是我所做的,但它会一直重定向已记录和未记录。

$u = "";
$isOwner = "no";
if($u == $log_username && $user_ok == true) {
     $isOwner = "yes";
}
if($isOwner != "yes") {
     header("location: index.php");
     exit();
}

最好的办法是什么?

2 个答案:

答案 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();
}

我只想感谢你们的所有想法。