简体   繁体   English

登录PHP网站时检查用户是否为管理员

[英]Check if user is admin when logging in to PHP website

I am trying to create a login form where if you are an admin you will get logged into a different site than if you were a normal user. 我正在尝试创建一个登录表单,如果您是管理员,则将登录到与普通用户不同的站点。 However, I am not sure how to do so. 但是,我不确定该怎么做。

In my database I have "admin" column, that is set to 0 by default. 在我的数据库中,我有“ admin”列,默认情况下设置为0。 If it is 1 it would be an admin. 如果为1,则将是管理员。

Here is the login code: 这是登录代码:

 if (isset($_POST['login_user'])) {
  $username = mysqli_real_escape_string($db, $_POST['username']);
  $password = mysqli_real_escape_string($db, $_POST['password']);

  if (empty($username)) {
    array_push($errors, "Skriv inn et brukernavn");
  }
  if (empty($password)) {
    array_push($errors, "Skriv inn et passord");
  }

  if (count($errors) == 0) {
    $password = md5($password);
    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $results = mysqli_query($db, $query);
    if (mysqli_num_rows($results) == 1) {
      $_SESSION['username'] = $username;
      $_SESSION['success'] = "Du er nå logget inn";
      header('location: index.php');
    }else {
        array_push($errors, "Feil brukernavn eller passord");
    }
  }
}

I hope you can help me, 我希望你能帮帮我,

Thanks :) 谢谢 :)

Just add one more condition to check if logged in person is admin or not like below code 只需添加一个条件即可检查登录用户是否为管理员,如下面的代码所示

if (mysqli_num_rows($results) == 1) 
 {
      $_SESSION['username'] = $username;
      $_SESSION['success'] = "Du er nå logget inn";
      $details = $results->fetch_array(MYSQLI_ASSOC)
      if( $details['admin'] == '1')
      {
         redirect him to admin here
        // header('location: index.php');
      }
      else if($details['admin'] == '0')
      {
         redirect him to normal page
         //header('location: index.php');
      } 
 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM