我有一个名为“adminarea.php”的页面,此页面只能由管理员访问。在我的用户表数据库中,我有一个名为“userLevel”的列,此列的值为“1”或“0”,在这种情况下,“0”表示用户是管理员。
现在,当用户点击导致“adminarea.php”的链接时,存在以下代码。我相信我可能会遗漏一些应该使代码访问数据库并分析保存有关尝试访问该页面的用户是否是管理员的信息的列。
<?php require "header.php";
if(check_login() && isAdmin()) {
} else {
header('Location: login.php');
exit;
}
function isAdmin() {
if (intval($_SESSION['sess_uid']['userLevel']) < 1) {
return true;
} else {
return false;
}
}
function check_login () {
if(isset($_SESSION['sess_uid']) && $_SESSION['sess_uid'] != '') {
return true;
} else {
false;
}
}
?>
非常感谢第二组眼睛。
谢谢
答案 0 :(得分:0)
您需要查询数据库。如果您使用的是PDO,则可以这样做。
function isAdmin() {
$query = $conn->prepare("SELECT `userLevel` FROM `user` WHERE `id` = ?");
$query->bindValue(1, $_SESSION['sess_uid']);
try {
$query->execute();
} catch (PDOException $e) {
die($e->getMessage());
}
$userLevel = $query->fetchColumn();
return $userLevel == 1;
}