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函数解决SQL injection
Dec 09 PHP
php下载远程文件类(支持断点续传)
Nov 14 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
PHP调用Webservice实例代码
Jul 29 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
PHP 转义使用详解
Jul 15 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
PHP实现多图上传和单图上传功能
May 17 PHP
CI框架实现创建自定义类库的方法
Dec 25 PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 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
深入PHP购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python装饰器知识点补充
2018/05/28 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
专升本自我鉴定
2013/10/10 职场文书
大学生求职自荐信
2013/12/12 职场文书
教师节商场活动方案
2014/02/13 职场文书
征婚广告词
2014/03/17 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫