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

相关推荐
努力的lpp8 小时前
php反序列化一(大白话版)
开发语言·web安全·php·ctf·反序列化
flower_drop9 小时前
基于 WebUSB 与 CDP:在浏览器端实现 Android 设备通信与无证书抓包实践
android·chrome·测试工具·adb·bug·edge浏览器
SendTomo9 小时前
【技术交流】从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想
redis·mysql·nginx·php·个人开发
小羊没烦恼!10 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
撩得Android一次心动11 小时前
Jetpack Compose 知识点整理1【个人用】
android·学习·kotlin·android jetpack·compose
ForteScarlet12 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
右耳朵猫AI13 小时前
PHP周刊2026W36 | Laravel AI SDK 0.11可观测、Symfony 8.1.5、Octane并发、事件溯源
人工智能·php·laravel
方白羽13 小时前
Android Studio 自动国际化插件:SmartI18n
android·android studio·intellij idea
我不是程序员三三15 小时前
如何监控电脑|企业终端行为监控概念科普与落地方法论
数据库·电脑·php
程序员梅雨15 小时前
Linux & Shell 实用干货
linux·运维·服务器·后端·面试·php