除非角色为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");
}
?>
请帮忙吗?
先谢谢了。
答案 0 :(得分:0)
如果用户无效,则需要在调用exit()
进行重定向之后header()
。否则,调用这些脚本的其余脚本仍将运行。