[英]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.