我正在使用具有用户类型检查的登录表单的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");
}
}
}
// ...