我目前正在学校项目中,我们正在建立一个有三种不同类型角色的网站。
在我们的用户表中,我们有一个名为“role”的属性。此角色有一个包含3个不同值的表,1,2和3.
1(管理员) 2(管理员) 3(用户)。
我想要的是:当有人登录时,代码想要查找该用户具有的角色值,然后将该用户重定向到“admin.php”(如果值为1),“adminuser.php “(如果值为2)或”user.php“,如果值为3。 这是当前的代码,它可以让您登录,但无论如何都会被发送到同一页面。
if(isset($_POST['email']))
{
$query = <<<END
SELECT email, password, userID, FROM user
WHERE email = '{$_POST['email']}'
AND password = '{$_POST['password']}'
END;
$res = $mysqli->query($query);
if ($res->num_rows > 0)
{
$row = $res->fetch_object();
$_SESSION["email"] = $row->email;
$_SESSION["userID"] = $row->id;
header("Location:admin.php");
}
else
{
echo "Fel email eller lösenord.";
}
}
答案 0 :(得分:0)
如果角色位于用户表中,请使用简单数组进行尝试。 在简单的代码下面,您可以从中获得您的愿望输出。
$role = array("1"=> "Admin.php", "2"=> "Adminuser.php", "3"=> "user.php");
if(isset($_POST['email'])){
$query = <<<END
SELECT email, password, userID, id FROM user
WHERE email = '{$_POST['email']}'
AND password = '{$_POST['password']}'
END;
$res = $mysqli->query($query);
if ($res->num_rows > 0){
$row = $res->fetch_object();
$_SESSION["email"] = $row->email;
$_SESSION["userID"] = $row->id;
//retrieve the user role from user-table, i use userid, you may use your own field
$query2 = <<<END
SELECT role FROM user-table
WHERE userid = '{$row->id}'
END;
$res2 = $mysqli->query($query2);
$row2 = $res2->fetch_object();
header("Location: ".$role[$row2->role]);
}else{
echo "Fel email eller lösenord.";
}
}