我正在创建一个登录页面,我实际上已经完成了登录,但是我如何根据用户权限显示不同的网页,以及如何在我的mysql数据库中设置权限?然后在我的PHP代码中使用它们?
答案 0 :(得分:3)
我通常在名为users
的{{1}}表中创建一个字段,或者在这种情况下可能是admin
,然后在你的php中,你定义该字段的哪些值对应于什么级别的特权。
编辑(示例):
privilege_level
然后,在要检查权限级别的页面上,您可以使用开关或其他控制结构/设计模式动态加载内容,即:
// start session on every page using $_SESSION array
session_start();
session_name("Your Site Name");
header("Cache-control: private");
// in login file:
$q = mysql_query("SELECT uid, privilege_level FROM users WHERE pw = 'escaped_and_preferrably_hashed_password' AND username = 'escaped_username' LIMIT 0,1");
// if row found:
if($q && mysql_num_rows($q) > 0){
// get associative array
$array = mysql_fetch_assoc($q);
// set session vars
$_SESSION['privilege_level'] = $array['privilege_level'];
}
答案 1 :(得分:0)
当用户登录时,他们会提供用户名/密码。数据库应存储此用户名和密码的哈希值。对于例如md5($password)
。您首先执行"SELECT privilege_level FROM table WHERE username = ".mysql_real_escape_string ($_POST["username"])." AND password=".md5($_POST["password"])
然后将该privilege_level保存到会话中。 $_SESSION["privilege_level"] = $privilege_level
现在当他们加载下一页时,该页面应引用会话变量中的权限级别来构建页面。