[英]How to prevent users from accessing admin pages
我想阻止任何其他用户访问管理页面,除非角色是管理员。
即使角色不正确,管理员也可以访问员工页面。
我不知道我的代码有什么问题,为什么它不起作用。
在我所有的 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");
}
?>
请问有什么帮助吗?
提前致谢。
如果用户无效,则需要在调用header()
后exit()
header()
进行重定向。 否则,调用这些脚本的脚本的其余部分仍将运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.