2 回答

TA貢獻1829條經驗 獲得超13個贊
您需要保存用戶權限類型,user_type例如 user、admin、super_user 等
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`username` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL,
`user_type` varchar(20) NOT NULL,
index(user_type)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
當他們登錄時,您檢查他們user_type并將其存儲在會話中 $_SESSION['user_type'] = *their_user_type_from_the_db*
然后將他們重定向到正確的頁面
$_SESSION['user_type'] = *their_user_type_from_the_db*
if($_SESSION['user_type']=='user'){
header('location: user.php');
}elseif($_SESSION['user_type']=='super_user'){
header('location: superuser.php');
}else{
header('location: home.php');
}

TA貢獻1802條經驗 獲得超6個贊
這可以在數據庫上輕松處理,并允許您控制用戶類型,而無需使用檢查常規登錄會話之外的會話的特殊代碼。
如果您有一個用戶表,請在表中放置一列用于type. 在表中設置一個與他們的用戶類型相對應的值。對于普通用戶,將該值設置為 1,對于“超級用戶”或“管理員”,將其設置為 2。當他們登錄時查詢數據庫并檢查他們的用戶類型,以及是否將其設置為普通用戶的值,只允許他們訪問常規用戶數據,如果設置為管理員,則允許他們訪問管理部分。
在您獲得用戶登錄的結果后,將執行以下查詢:
$sql = "SELECT usertype FROM users WHERE username='$username'";
在將 $row 信息收集到數組中后,檢查$row['usertype'].
if($row['userType'] === 2){
//Admin user permissions
//Set an admin session here
header('Location: admin.php');
exit();
}else{
//Regular user permissions
//Set an reg user session here
header('Location: loginHome.php');
exit();
}
- 2 回答
- 0 關注
- 142 瀏覽
添加回答
舉報