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 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
PHP在字符串中查找指定字符串并删除的代码
Oct 02 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
twig里使用js变量的方法
Feb 05 PHP
PHP学习记录之数组函数
Jun 01 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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
Python分析学校四六级过关情况
2017/11/22 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
python lxml中etree的简单应用
2019/05/10 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
政法学院毕业生求职信
2014/02/28 职场文书
访谈节目策划方案
2014/05/15 职场文书
红色故事演讲稿
2014/05/22 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书