我正在创建具有不同用户级别的登录信息。如果用户名和密码是管理员或员工,如何获取user_level字段,以便我的表用户可以进行comapare。
以下是代码:
<?php
include("../config/database.php");
if(isset($_POST["login"]))
{
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$query = "SELECT * FROM users
WHERE username= '$username' OR email= '$username'
AND password='$password'";
$result = mysql_query($query);
$count = mysql_num_rows($result);//counting table rows
if($count==1)
{//check if found username and password
if(user_level == "admin")
{
header("Location: ../views/admin/dashboard.php");
}
elseif(user_level=="patient")
{
header("Location: ../views/default/home.php");
}
}
else
{
echo "WRONG USERNAME OR PASSWORD!";
}
}
?>
答案 0 :(得分:1)
进行一些更改,它会起作用......
$count = mysql_fetch_assoc($result);
以及
if($count==1){//check if found username and password
if($count['user_level'] == "admin"){
header("Location: ../views/admin/dashboard.php");
}elseif($count['user_level']=="patient"){
header("Location: ../views/default/home.php");
}
}
答案 1 :(得分:0)
if(user_level == "admin"){
应该是
$record=mysql_fetch_assoc($result);
if($record["user_level"] == "admin"){
答案 2 :(得分:0)
首先尝试使用括号分开
$sql = "SELECT * FROM users
WHERE (username= '$username' OR email= '$username')
AND password='$password'";";
并且mysql_*
函数也被删除。您可以使用mysqli_*
或PDO
。
要回答您的问题,您是否有一个字段可以确定用户在您的表格中的角色?如果是这样,只需返回该字段并检查用户是否是合适的角色。
示例:
$data = mysql_fetch_assoc($result);
if ($data["user_level"] == "admin" ){
...
}
答案 3 :(得分:0)
您应该在数据库表user_level
中添加字段users
。您可以在注册级别为其分配值admin
或patient
。
之后,对新变量$previlage
使用相同的查询。然后用它来从数据库中获取内容,如下面的,,,
$previlage=mysql_fetch_array($result); //fetch contents from db
if($previlage['user_level'] == "admin"){
header("Location: ../views/admin/dashboard.php"); // if userlevel admin
}elseif($previlage['user_level']=="patient"){
header("Location: ../views/default/home.php"); // if user level is patient
}