PHP实现权限管理功能示例


Posted in PHP onSeptember 22, 2017

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

首先先看下数据库

PHP实现权限管理功能示例PHP实现权限管理功能示例PHP实现权限管理功能示例PHP实现权限管理功能示例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); 
}

效果如图:

PHP实现权限管理功能示例

PHP实现权限管理功能示例

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

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>

效果如图:

PHP实现权限管理功能示例

以上就是小编为大家带来的PHP实现权限管理功能示例的全部内容了,希望大家喜欢哦~

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

PHP 相关文章推荐
PHP中的加密功能
Oct 09 PHP
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
解析PHP获取当前网址及域名的实现代码
Jun 23 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
php检查页面是否被百度收录
Oct 28 PHP
php session 写入数据库
Feb 13 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
PHP实现微信退款功能
Oct 02 PHP
PHP实现浏览器格式化显示XML的方法示例
Jan 22 PHP
php curl发送请求实例方法
Aug 01 PHP
laravel Model 执行事务的实现
Oct 10 PHP
php生成毫秒时间戳的实例讲解
Sep 22 #PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 #PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 #PHP
Laravel中Facade的加载过程与原理详解
Sep 22 #PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 #PHP
深入理解PHP的远程多会话调试
Sep 21 #PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 #PHP
You might like
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
一个对于js this关键字的问题
2007/01/09 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
python更新数据库中某个字段的数据(方法详解)
2020/11/18 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
Reformation官网:美国女装品牌
2018/09/14 全球购物
餐饮业会计岗位职责
2013/12/19 职场文书
小学体育教学反思
2014/01/31 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
归元寺导游词
2015/02/06 职场文书
综合素质评价自我评价
2015/03/06 职场文书
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL