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
配置PHP使之能同时支持GIF和JPEG
Oct 09 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
php 正则表达式小结
Aug 31 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
php 强制下载文件实现代码
Oct 28 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
php制作文本式留言板
Mar 18 PHP
Symfony2创建页面实例详解
Mar 18 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
PHP云打印类完整示例
Oct 15 PHP
PHP实现微信提现(企业付款到零钱)
Aug 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
如何去掉文章里的 html 语法
2006/10/09 PHP
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
Python中的map、reduce和filter浅析
2014/04/26 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
STP的判定过程
2012/10/01 面试题
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
教研处工作方案
2014/05/26 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
老人与海读书笔记
2015/06/26 职场文书
2019银行竞聘书
2019/06/21 职场文书