php - 根据数据库中的角色重定向到不同的页面

标签 php mysql redirect authentication

我是 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

最佳答案

你选择ROLE,但正如你所说,你在数据库中编写了Role,你需要以与在表中编写atrr相同的方式编写,并且就像Fred在评论中所说的那样,它在$row[中的方式相同'角色']

switch($row["Role"]){

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

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

关于php - 根据数据库中的角色重定向到不同的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20731699/

相关文章:

HTTPS 重定向到完全不同的网站?

php - iOS 到 PHP 的错误编码(非英语变成乱码)

来自非连续行的按列的 PHP 表

php - 通过 Php 表单创建用户(Bash 脚本)

mysql - Ruby:解析时间字符串以在 MySql 中接受为有效的日期时间

redirect - 提交数据并重定向到 Paypal

php - 你如何在 PHP 中运行原始的 redis 命令?

asp.net - 调试 MySQL : Too many connections

mysql - 对 SQL 赋值感到困惑

.htaccess 对除子域之外的所有内容强制使用 "www."并删除尾部斜杠