根据数据库中的角色重定向到其他页面

时间:2013-12-22 16:50:27

标签: php mysql redirect login

我是PHP的新手。我正在尝试创建一个登录页面,该页面将根据其角色重定向到不同的页面。他们将使用员工ID和密码登录。

以下是我的数据库

Staff_id密码角色

XXX XXX XXX

我的HTML登录页面--->的login.html 我登录的PHP代码 - > Login2.php

我已经看到了解决方案中的其他问题,但我仍然无法做到正确。当我登录时,它只是将我引导到一个空页-xx / xx / Login2.php'。我做错了什么?

我正在使用PHP 5. **。

这些是我的PHP代码:

// Connect to server and select databse.
$db= new mysqli("$host", "$username", "$password");

//check connection
if ($db->connect_errno) {
printf("Connect failed: %s\n", $db->connect_error);
exit();
}

// username and password sent from form
$staff_id=$_POST['staff_id'];
$password=$_POST['password'];

// To protect MySQL injection (more detail about MySQL injection)
$staff_id = stripslashes($staff_id);
$password = stripslashes($password);
$staff_id = mysql_real_escape_string($staff_id);
$password = mysql_real_escape_string($password);

$sql="SELECT ROLE FROM $tbl_name WHERE STAFF_ID=$staff_id and PASSWORD='$password'";

$rslt= $db -> query($sql);

// Mysql_num_row is counting table row
$count= $db -> affected_rows;

// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){

$row = mysqli_fetch_array($rslt, MYSQLI_ASSOC);


 switch($row["ROLE"])
{
        case 'ADMIN':
        header("location: /test/HTMLPages/Admin-register.html");   
        break;

    case 'MANAGER':
    header("location: /test/HTMLPages/View-report.html");
    break;

    default:
    echo "Wrong staff ID or password";
}
}
?>

知道我采取其他代码并在逻辑上修补它。

编辑:修正。当然它会无处可去,因为我没有说明数据库名称。 :d

谢谢你的时间:D

1 个答案:

答案 0 :(得分:0)

你选择了ROLE,但是当你在DB中编写角色时,你需要编写你在表中编写atrr的SAME方式,就像Fred在评论中所说的那样,它在$ row中也是一样的[ '角色']

switch($row["Role"]){

}
$sql="SELECT Role FROM {$tbl_name} WHERE STAFF_ID={$staff_id} and PASSWORD={$password}";

我不知道你是否没有包含$ tbl_name,但是从上面的代码看来你似乎没有$ tbl_name变量