在php中如何区分登录时的用户类型?

在php中如何区分登录时的用户类型?,php,Php,这是我正在尝试的php代码,它只对一个用户有效,我不知道如何使用用户类型代码 <?php class Admin{ /// User Login public function AdminlogIn($user,$password) { $con = new mysqli("localhost","root","","animal"); $sql = "SELECT * FROM users WHER

这是我正在尝试的php代码,它只对一个用户有效,我不知道如何使用用户类型代码

<?php
    class Admin{

            /// User Login
    public function AdminlogIn($user,$password)
    {   
        $con = new mysqli("localhost","root","","animal"); 
        $sql = "SELECT * FROM users WHERE username= '$user' AND password='$password'";
        $result =  $con->query($sql);
        $count = $result->num_rows > 0;
        $name = $result->fetch_row();
        echo "<script> alert(".$count.")</script>";

        if ($count==1)
        {
             session_start();
             $_SESSION['username'] = $name[0];
             $_SESSION['password'] = $name[1];

             $role = $row['Role'];



             header("location:admin.php");




        }
        else
        {
            echo "Failed to login" . "<br/> <br/>";
        }


    } 

}
?>

在数据库表字段中添加用户类型,或者您可以说该用户角色,并在用户尝试登录时检查它,如果找到的用户凭据和类型为admin,请将其重定向到admin页或在登录失败时重定向到用户仪表板else。

<1。首先在数据库表字段中添加用户类型,您的数据库表结构如下:-

table:-
    id    username   password   Role 
    1      ---         ----     admin
    2       ---        ----     Student
    3       ----        ----    Teacher
我认为你的问题是检查条件,使用if和else语句

 $_SESSION['username'] = $name[0];
  $_SESSION['password'] = $name[1];
  $_SESSION['Role'] = $name[2];


if($_SESSION['Role'] == 'admin'){
   header("Location: admin.php");
   }
else if($_SESSION['Role'] == 'Student'){
   header("Location: Student.php");
   }
else if($_SESSION['Role'] == 'Teacher'){
   header("Location: Teacher.php");
   }
else{
   echo "Your not logged in";
   }

希望它能帮助你

您的查询易受MySQL注入攻击。恶意用户可以绕过您的登录代码。什么是用户类型代码?你是说这个角色吗?您希望如何处理此值?你说它只对一个用户有效是什么意思?问题太多了…@user8718169您的表结构是什么。无法将角色存储在表中。因为您的代码中只包含1个用户。这是从哪里来的$行['Role']?$row['Role']我试图获取区分管理员和用户的值,因为它们都在数据库中的一个表中。你有其他想法吗?好的,我认为这可能会起作用。让我尝试将其应用于我的code@user8718169是的,它绝对适合你,因为我理解你的要求。您将尝试&让我知道进一步的澄清。我已经尝试了代码,但是因为在第一个if语句中,我声明if$count==1,每次我尝试登录时,它会给我一个1的输出和一个OK按钮,所以当我按下它时,它会给我一条你没有登录的消息in@user8718169在警报框中,u get 1表示存储不同用户的双引号值,例如1,2而不是其用户名。