繁体   English   中英

mysql数据库和php的用户权限

[英]User privileges with mysql database and php

我已经很好地完成了登录页面,实际上我已经完成了登录,但是如何使网页显示的内容与基于用户权限的内容不同,如何在mysql数据库中设置权限? 然后在我的PHP代码中使用它们?

我通常在users表中创建一个名为admin的字段,在这种情况下,可能是privilege_level ,然后在您的php中,定义该字段的值对应于特权级别。

编辑(示例):

// 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'];

}

然后,在要检查特权级别的页面上,可以使用开关或其他控件结构/设计模式来动态加载内容,即:

switch($_SESSION['privilege_level']){
    default:
        echo 'you have no privileges';
    break;
    case "1":
        echo 'you have some privileges';
    break;
    case "2":
        echo 'you have lots of privileges';
    break;
}

用户登录时,他们会提供用户名/密码。 数据库应存储该用户名和密码的哈希。 对于前 md5($password) 首先,您要执行一个查询,例如"SELECT privilege_level FROM table WHERE username = ".mysql_real_escape_string ($_POST["username"])." AND password=".md5($_POST["password"])

然后将该特权级别保存到会话中。 $_SESSION["privilege_level"] = $privilege_level

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM