如何修复无法正常运行的PHP用户类型检查?

时间:2019-05-29 16:18:39

标签: php mysql usertype

我正在使用具有用户类型检查的登录表单的Web应用程序。根据先前已注册到该应用程序的用户的用户类型(管理员或客户),它会打开不同的内容。例如,如果用户是admin,则在登录到站点后,他将看到控制面板。另一方面,如果用户是客户,则可以看到可用的产品。我正在使用XAMPP,并创建了数据库,表,注册和登录表单。注册工作正常,但是登录有问题。当我输入“客户”的电子邮件和密码并单击“登录”时,需求页面(index.php)会正确打开。但是,当我输入“ admin”的电子邮件和密码并单击“登录”时,它不会打开需求页面(home.php),只会删除先前输入的数据(电子邮件和密码)并停留在登录表单上。这是代码剪辑:

// ...
function login()
{
    global $db, $email, $errors;

    $email = e($_POST['email']);
    $password = e($_POST['password']);

    //...

    if (count($errors) == 0) 
    {
        $password = md5($password);
        $query = "SELECT * FROM users WHERE email='$email' AND password='$password' LIMIT 1";
        $results = mysqli_query($db, $query);

        if (mysqli_num_rows($results) == 1) 
        { 
            $logged_in_user = mysqli_fetch_assoc($results);    
            if ($logged_in_user['user_type'] == 'admin') //doesn't work
            {
                $_SESSION['user'] = $logged_in_user;
                $_SESSION['success']  = "You are now logged in";
                header('location: admin/home.php');       
            }
            else if ($logged_in_user['user_type'] == 'customer') //works properly
            {
                $_SESSION['user'] = $logged_in_user;
                $_SESSION['success']  = "You are now logged in";
                header('location: index.php');
            }
        }
        else
        {
            array_push($errors, "Wrong email/password combination");
        }
    }
}
// ...

0 个答案:

没有答案