在php中如何区分登录时的用户类型?
这是我正在尝试的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
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而不是其用户名。