php实现站群软件权限管理功能示例

1.管理员页面RBAC.php

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>权限管理</title>
<script src="bootstrap/js/jquery-1.11.2.min.js"></script>
</head>
<body>
<h2>用户与角色管理</h2>
<div>
请选择用户:
<select id="user">
<?php
require_once "./DBDA.class.php";
db = new DBDA(); sql = "select * from users";
arr = db->query(sql,0); foreach(arr as v){ echo "\("#user").change(function(){
       //当用户选中变化的时候,去选中相应角色
sel();
})
      //点击确定保存角色信息
("#btn").click(function(){ var uid = ("#user").val();
var ck = (".ck"); var role = "";//初始为空 for(i=0;i\.ajax({
type:"POST",
url:"RBbtnchuli.php",
data:{uid:uid,role:role},
dataType:"TEXT",
success:function(data){
alert("修改成功!");
}
});
})
      //选中默认角色的封装方法
function sel(){
var uid = ("#user").val(); .ajax({
url:"RBchuli.php",
data:{uid:uid},
type:"POST",
dataType:"TEXT",
success:function(data){
var role = data.split("|");
var ck = $(".ck");
ck.prop("checked",false);
for(i=0;i<ck.length;i++){
var v = ck.eq(i).val();
if(role.indexOf(v)>=0){
ck.eq(i).prop("checked",true);
}
}
}
});
}
</script>
</html>

总共有5张表,users,roles和roleswork 3张表与另外2张表形成"w"型的关系,也是比较常见的一种权限数据库的方式,首先先做权限的设定,也就是管理层给不同用户设定不同权限。

2.做管理员的处理页面RBchuli.php

<?php
uid = _POST["uid"];
require_once "./DBDA.class.php";
db = new DBDA(); sql = "select rolesuid from users_roles where usersuid='{uid}'"; echo db->StrQuery($sql,0); 保存角色信息的处理页面RBbtnchuli.php

保存角色信息的处理页面RBbtnchuli.php

<?php

uid = _POST["uid"];

role = _POST["role"];//字符串

role = substr(role,0,strlen($role)-1);

arr = explode("\|", role);

require_once "./DBDA.class.php";

$db = new DBDA();

//删除

sdel = "delete from users_roles where usersuid='{uid}'";

db-\>query(sdel);

//添加

foreach(arr as v){

sql = "insert into users_roles values(0,'{uid}','{$v}')";

db-\>query(sql);

}

接下来做的是登录某个账号,查看自己的职能

3.用户登录页面RBlogin.php

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="bootstrap/js/jquery-1.11.2.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<link href="bootstrap/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" type="text/css"/>
</head>
<style>
.title{
margin-left: 600px;
margin-top: 150px;
}
.quanju{
margin-left: 450px;
margin-top: -180px;
}
.name,.pwd{
max-width: 120px;
}
.yangshi1{
margin-top: 200px;
}
</style>
<body>
<form class="form-horizontal" role="form" action="RBloginchuli.php" method="post">
<h3 class="title">用户登录</h3>
<div class="quanju">
<div class="form-group yangshi1">
<label for="firstname" class="col-sm-2 control-label">用户名:</label>
<div class="col-sm-10">
<input type="text" class="form-control name" name="uid" placeholder="请输入用户名">
</div>
</div>
<div class="form-group yangshi2">
<label for="lastname" class="col-sm-2 control-label">密码:</label>
<div class="col-sm-10">
<input type="text" class="form-control pwd" name="pwd" placeholder="请输入密码">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox">
保存密码 </label>
<label>
<input type="checkbox">
下次自动登录 </label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-warning" value="登录" οnclick="return login()" >
登录
</button>
</div>
</div>
</div>
</form>
</body>
</html>

4.登录页面的处理页面RBloginchuli.php

<?php
session_start();
uid = _POST["uid"];
pwd = _POST["pwd"];
require_once "./DBDA.class.php";
db = new DBDA(); sql = "select pwd from users where uid='{uid}'"; mm = db-\>StrQuery(sql,0);
if(!empty(pwd) \&\& pwd==mm){ _SESSION["uid"] = $uid;
header("location:RBmain.php");
}else{
echo "<script>alert('用户名或密码有误!')</script>";
}

5.最后做用户的主页面RBmain.php

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>权限主页面</title>
</head>
<body>
<?php
session_start();
if(empty(_SESSION\["uid"\])){ header("location:RBlogin.php"); exit; } uid = _SESSION\["uid"\]; require_once "./DBDA.class.php"; db = new DBDA();
//子查询
sql = "select \* from roleswork where code in (select \* from roles_roleswork where rolesuid in (select \* from users_roles where usersuid='{uid}'))";
arr = db->query(sql,0); foreach(arr as v){ echo "\

相关推荐
程序员江同学39 分钟前
Kotlin/Native 编译流程浅析
android·kotlin
移动开发者1号1 小时前
Kotlin协程与响应式编程深度对比
android·kotlin
花花鱼11 小时前
android studio 设置让开发更加的方便,比如可以查看变量的类型,参数的名称等等
android·ide·android studio
alexhilton12 小时前
为什么你的App总是忘记所有事情
android·kotlin·android jetpack
用户92724725021915 小时前
PHP+JS+CSS+JSON 单页新闻系统实现方案
php
AirDroid_cn15 小时前
OPPO手机怎样被其他手机远程控制?两台OPPO手机如何相互远程控制?
android·windows·ios·智能手机·iphone·远程工作·远程控制
尊治15 小时前
手机电工仿真软件更新了
android
Ashlee_code18 小时前
什么是Web3?金融解决方案
开发语言·金融·架构·eclipse·web3·区块链·php
xiangzhihong818 小时前
使用Universal Links与Android App Links实现网页无缝跳转至应用
android·ios