全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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>

效果如图:

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

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


# PHP实现权限管理功能  # Docker搭建OpenLDAP+phpLDAPadmin统一用户认证的方法  # 用PHP写的MySQL数据库用户认证系统代码  # PHP实现用户认证及管理完全源码  # php实现简单的权限管理的示例代码  # PHP实现用户认证与权限管理的实现  # 用户登录  # 请输入  # 请选择  # 如图  # 小编  # 自己的  # 的是  # 将在  # 管理系统  # 想了  # 尽在  # 希望大家  # 时间为  # 来做  # 管理层  # 先看  # 游戏攻略  # 总共有  # 为空  # 游戏频道 


相关文章: 湖南网站制作公司,湖南上善若水科技有限公司做什么的?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  宝塔建站助手安装配置与建站模板使用全流程解析  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  一键网站制作软件,义乌购一件代发流程?  如何在建站之星绑定自定义域名?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  盐城做公司网站,江苏电子版退休证办理流程?  如何用wdcp快速搭建高效网站?  如何通过cPanel快速搭建网站?  PHP 500报错的快速解决方法  TestNG的testng.xml配置文件怎么写  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  如何在云主机上快速搭建网站?  制作网站公司那家好,网络公司是做什么的?  如何高效搭建专业期货交易平台网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何自定义建站之星模板颜色并下载新样式?  如何配置IIS站点权限与局域网访问?  css网站制作参考文献有哪些,易聊怎么注册?  常州企业建站如何选择最佳模板?  如何自定义建站之星网站的导航菜单样式?  建站之星伪静态规则如何设置?  如何撰写建站申请书?关键要点有哪些?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  公司网站制作需要多少钱,找人做公司网站需要多少钱?  建站之星备案流程有哪些注意事项?  如何在Windows 2008云服务器安全搭建网站?  手机网站制作与建设方案,手机网站如何建设?  浅析上传头像示例及其注意事项  制作网页的网站有哪些,电脑上怎么做网页?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  存储型VPS适合搭建中小型网站吗?  制作门户网站的参考文献在哪,小说网站怎么建立?  如何在阿里云香港服务器快速搭建网站?  北京网站制作的公司有哪些,北京白云观官方网站?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  如何选择建站程序?包含哪些必备功能与类型?  ,怎么用自己头像做动态表情包?  利用JavaScript实现拖拽改变元素大小  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  东莞专业制作网站的公司,东莞大学生网的网址是什么?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  如何在云主机快速搭建网站站点?  网站制作软件有哪些,制图软件有哪些?  如何在IIS中新建站点并配置端口与IP地址? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。