我有一次他們點擊一個鏈接只有管理員可以訪問一個頁面。如果登錄用戶是標準用戶,則他們不應該能夠訪問該頁面。但是,當標準用戶嘗試訪問管理頁面時,他們有權訪問該頁面。管理頁面訪問
我希望一對第二眼睛,看看他們是否能發現什麼毛病代碼將使功能工作按預期。
感謝
<?php
if(check_login() && isAdmin()) {
echo 'welcome administrator';
} else {
header('Location: login.php');
exit;
}
function isAdmin() {
$conn = mysqli_connect("localhost", "root", "dbpass", "dbname") or die ('Could not connect to database!');
$sql = "SELECT * FROM `usertable` WHERE userID ='" . $_SESSION['sess_uid'] . "'";
$mainaccess = $conn->query($sql);
print_r($mainaccess);
if(!$mainaccess){
echo $conn->error;
}
if ($mainaccess -> userLevel == 0) {
return true;
} else {
return false;
}
}
function check_login() {
if(isset($_SESSION['sess_uid']) && $_SESSION['sess_uid'] != '') {
return true;
} else {
false;
return;
}
}
?>
這是真正的SQL嗎?因爲你似乎沒有過濾用戶名或ID?因此,它將始終返回管理員帳戶 – Trent
我認爲這是我一直在尋找的,因爲我只想管理員帳戶訪問該頁面。這就是真正的SQL。 – user3296793
同意Trent,你是如何檢查特定用戶的。你不檢查用戶的ID,這是需要發生的事情。 –