用户权限与mysql数据库和PHP

时间:2012-01-29 00:26:51

标签: php mysql privileges

我正在创建一个登录页面,我实际上已经完成了登录,但是我如何根据用户权限显示不同的网页,以及如何在我的mysql数据库中设置权限?然后在我的PHP代码中使用它们?

2 个答案:

答案 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

现在当他们加载下一页时,该页面应引用会话变量中的权限级别来构建页面。