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

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

@H_301_0@<span style="background-color: #ccffcc">

PHP-人员权限管理(RBAC)


@H_301_0@权限管理可以想做vip的功能,普通用户和vip用户功能是不一样的,大致会用到五张表<span style="color: #ff00ff">

用户表、角色表、功能表,还有他们之间互相关联的表:用户与角色表、角色与功能


@H_301_0@


@H_3010@

我用到的五张表如下:


@H
301_0@


<p style="text-align: center">


<p style="text-align: center">


@H_301_0@

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


@H_301_0@<span style="background-color: #ccffcc">

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


<div class="jb51code">
<pre class="brush:xhtml;">

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

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

@H_301_0@

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

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

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

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); } } }
})

}

@H_301_0@5.各项值的处理页面

PHP;"> strquery($sql);
@H_301_0@效果如下:

@H_301_0@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("保存成功!");
}
})
})

@H_301_0@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);
}

@H_301_0@效果如下:

@H_301_0@

@H_301_0@

@H_301_0@下面代码用来copy用,

注意AJAX需要引用Jquery

@H_301_0@1.guanli.PHP

PHP;"> 无<a href="/tag/biaoti/" target="_blank" class="keywords">标题</a>文档
@H_301_0@2.chuli.PHP

PHP;"> strquery($sql);
@H_301_0@3.保存的处理页面 add.PHP

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

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

@H_301_0@

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

@H_301_0@1.登录基本页面 login.PHP

PHP;"> 无<a href="/tag/biaoti/" target="_blank" class="keywords">标题</a>文档

登录界面

PHP" method="post">
密码:
@H_301_0@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"输入的用户名或密码有误!";
}

@H_301_0@3.主页面 main.PHP

PHP;"> 无<a href="/tag/biaoti/" target="_blank" class="keywords">标题</a>文档