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 "\

相关推荐
黑金IT7 分钟前
在PHP8内,用Jenssegers MongoDB扩展来实现Laravel与MongoDB的集成
mongodb·php·laravel
CYRUS STUDIO23 分钟前
ARM64汇编寻址、汇编指令、指令编码方式
android·汇编·arm开发·arm·arm64
小春学渗透43 分钟前
Day107:代码审计-PHP模型开发篇&MVC层&RCE执行&文件对比法&1day分析&0day验证
开发语言·安全·web安全·php·mvc
weixin_449310841 小时前
高效集成:聚水潭采购数据同步到MySQL
android·数据库·mysql
Zender Han1 小时前
Flutter自定义矩形进度条实现详解
android·flutter·ios
დ旧言~2 小时前
【网络】应用层——HTTP协议
开发语言·网络·网络协议·http·php
follycat2 小时前
[极客大挑战 2019]PHP 1
开发语言·学习·网络安全·php
白乐天_n3 小时前
adb:Android调试桥
android·adb
姑苏风7 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
数据猎手小k11 小时前
AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
android·人工智能·机器学习·语言模型