我目前在一个学校项目,我们正在做一个网站,其中有三种不同类型的角色。
在我们的用户表中,我们有一个名为“角色”的属性。此角色有一个具有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.";
}
}发布于 2016-03-24 09:55:48
如果角色在user表中,那么使用一个简单的数组来尝试这个角色。在下面的简单代码中,您可以从哪里获得所需的输出。
$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.";
}
}https://stackoverflow.com/questions/36196963
复制相似问题