PHP实现权限管理功能示例

权限管理系统,它主要是为了给不同的用户设定不同的权限,从而实现不同权限的用户登录之后使用的功能不一样。

首先先看下数据库

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

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 "<option value='{$v[0]}'>{$v[2]}</option>";

}

?>

</select>

</div>

<br />

<div>

请选择角色:

<?php

$sql = "select * from roles";

$arr = $db->query($sql,0);

foreach($arr as $v){

echo "<input type='checkbox' class='ck' value='{$v[0]}'>{$v[1]}";

}

?>

</div>

<br />

<input type="button" value="确认" id="btn"/>

</body>

<script>

sel(); //选中默认角色

$("#user").change(function(){

       //当用户选中变化的时候,去选中相应角色

sel();

})

      //点击确定保存角色信息

$("#btn").click(function(){

var uid = $("#user").val();

var ck = $(".ck");

var role = "";//初始为空

for(i=0;i<ck.length;i++){

var v = ck.eq(i).val();

if(ck.eq(i).prop("checked")){

role += ck.eq(i).val()+"|";

}

}

$.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>

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="登录" onclick="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 "<div class='menu'>{$v[1]}</div>";

}

?>

</body>

</html>

效果如图:

如果大家想了解更多游戏活动与游戏攻略,请持续关注本站,本站小编将在第一时间为大家带来最好看、最好玩、最新鲜的游戏资讯。更多精彩内容,尽在jb51游戏频道!

以上是 PHP实现权限管理功能示例 的全部内容, 来源链接: utcz.com/z/313667.html

回到顶部