阻止用户访问管理页面

时间:2018-07-25 10:18:47

标签: php mysql

除非角色为admin,否则我想阻止任何其他用户访问管理页面。

即使角色不正确,管理员也可以访问员工页面。

我不知道我的代码为什么不起作用。

在我所有的php代码上,此页面调用“ check_login.php”都需要一次

这是管理页面的check_login.php代码

<?php

session_start();
$current_user = $_SESSION['fullname'];

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
    $myusername = $_SESSION['username'];

    include '../db_config/connection.php';

    $sql = "SELECT * FROM user_info WHERE ent_id='$myusername' AND role IN ('Admin', 'Manager', 'Supervisor')";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {

        while($row = $result->fetch_assoc()) {
            $current_user_id = $row['user_id'];
        }
    } else {
        header("../?login_err=You must be an Administrator");
    }
    $conn->close();

} else {
    header("location:../?login_err=You must login first");
}

?>

这是员工的check_login.php代码

<?php

session_start();
$current_user = $_SESSION['fullname'];
$current_empid = $_SESSION['user_index'];

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
    $myusername = $_SESSION['username'];

    include '../db_config/connection.php';

    $sql = "SELECT * FROM user_info WHERE ent_id='$myusername' AND role = 'Employee'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {

        while($row = $result->fetch_assoc()) {
            $current_user_id = $row['user_id'];
        }
    } else {
        header("../build/login.php?login_err=You must be an Employee");
    }
    $conn->close();

} else {
    header("location:../build/login.php?login_err=You must login first");
}
?>

请帮忙吗?

先谢谢了。

1 个答案:

答案 0 :(得分:0)

如果用户无效,则需要在调用exit()进行重定向之后header()。否则,调用这些脚本的其余脚本仍将运行。