php 人员权限管理(RBAC)实例(推荐)

前端之家收集整理的这篇文章主要介绍了php 人员权限管理(RBAC)实例(推荐)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP-人员权限管理(RBAC)

权限管理可以想做vip的功能,普通用户和vip用户功能是不一样的,大致会用到五张表用户表、角色表、功能表,还有他们之间互相关联的表:用户与角色表、角色与功能

我用到的五张表如下:

一. 首先写的是管理员页面

1.用下拉列表显示用户名

2.因为上面已经造了新对象,所以在显示角色名时直接从sql语句开始写

请选择角色: query($sql,1); foreach($arr as $v) { echo "{$v[1]}"; } ?>

3.为了修改权限加一个确认保存按钮

4.这样,再考虑怎么让数据库用户本有的角色显示出来,那就是要用到下拉列表和复选框的值了

可以把它写入方法里,然后调用这个方法

PHP",data:{uid:uid},type:"POST",dataType:"TEXT",success: function(data){ var js = data.trim().split("|"); var ck = $(".ck"); ck.prop("checked",false); for(var i=0;i=0) { ck.eq(i).prop("checked",true); } } }
})

}

5.各项值的处理页面

PHP;"> strquery($sql);

效果如下:

6.最后就是保存修改后的值了,可以直接用全部删除在重新写入的方法来进行值的选择;对保存按钮添加单击事件

$("#user").change(function(){
Xuan();
})
$("#baocun").click(function(){
var uid = $("#user").val();
var str = "";
var ck = $(".ck");
for(var i=0;i<ck.length;i++)
{
if(ck.eq(i).prop("checked"))
{
str = str + ck.eq(i).val()+",";
}
}

str = str.substr(0,str.length-1);

$.ajax({
url:"add.PHP",data:{uid:uid,js:str},success: function(data){
alert("保存成功!");
}
})
})

7.保存的处理页面

PHP;"> //清空原有角色
$sql = "delete from userinjuese where userid='{$uid}'";
$db->query($sql);

//添加选中的角色
$ajs = explode(",",$js);

foreach($ajs as $v)
{
$sql = "insert into userinjuese values('','{$uid}','{$v}')";
$db->query($sql);
}

效果如下:

下面代码用来copy用,

注意AJAX需要引用Jquery

1.guanli.PHP

PHP;"> 无<a href="https://www.jb51.cc/tag/biaoti/" target="_blank" class="keywords">标题</a>文档

2.chuli.PHP

PHP;"> strquery($sql);

3.保存的处理页面 add.PHP

PHP;"> //清空原有角色
$sql = "delete from userinjuese where userid='{$uid}'";
$db->query($sql);

//添加选中的角色
$ajs = explode(",'{$v}')";
$db->query($sql);
}

二.完成管理员页面后,下面就是登录页面

1.登录基本页面 login.PHP

PHP;"> 无<a href="https://www.jb51.cc/tag/biaoti/" target="_blank" class="keywords">标题</a>文档

登录界面

PHP" method="post">
密码:

2.登录处理的页面 dlchuli.PHP

PHP;"> require "../DBDA.class.php";
$db = new DBDA();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"];
$sql = "select pwd from users where uid='{$uid}'";
$mm = $db->strquery($sql);
if($mm==$pwd && !empty($pwd))
{
$_SESSION["uid"] = $uid;
header("location:main.PHP");
}
else
{
echo"输入的用户名或密码有误!";
}

3.主页面 main.PHP

PHP;"> 无<a href="https://www.jb51.cc/tag/biaoti/" target="_blank" class="keywords">标题</a>文档