首页 php教程 php手册 图文详解如何用PHP实现权限管理功能

图文详解如何用PHP实现权限管理功能

Jun 06, 2016 pm 07:55 PM
php 权限管理功能

下面小编就为大家带来一篇PHP实现权限管理功能示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

首先先看下数据库

总共有5张表,users,roles和roleswork 3张表与另外2张表形成"w"型的关系,也是比较常见的一种权限数据库的方式,首先先做权限的设定,也就是管理层给不同用户设定不同权限。

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); 
}
登录后复制

效果如图:

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

<span ">3.用户登录页面RBlogin.php

&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;&lt;/title&gt;
    &lt;script src=&quot;bootstrap/js/jquery-1.11.2.min.js&quot;&gt;&lt;/script&gt;
    &lt;script src=&quot;bootstrap/js/bootstrap.min.js&quot;&gt;&lt;/script&gt;
    &lt;link href=&quot;bootstrap/css/bootstrap.min.css&quot; rel=&quot;external nofollow&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
  &lt;/head&gt;
  &lt;style&gt;
    .title{
      margin-left: 600px;
      margin-top: 150px;
    }
    .quanju{
      margin-left: 450px;
      margin-top: -180px;
    }
    .name,.pwd{
      max-width: 120px;
    }
    .yangshi1{
      margin-top: 200px;
    }
  &lt;/style&gt;
  &lt;body&gt;    
&lt;form class=&quot;form-horizontal&quot; role=&quot;form&quot; action=&quot;RBloginchuli.php&quot; method=&quot;post&quot;&gt;
  &lt;h3 class=&quot;title&quot;&gt;用户登录&lt;/h3&gt;
  &lt;p class=&quot;quanju&quot;&gt;
      &lt;p class=&quot;form-group yangshi1&quot;&gt;
        &lt;label for=&quot;firstname&quot; class=&quot;col-sm-2 control-label&quot;&gt;用户名:&lt;/label&gt;
        &lt;p class=&quot;col-sm-10&quot;&gt;
          &lt;input type=&quot;text&quot; class=&quot;form-control name&quot; name=&quot;uid&quot; placeholder=&quot;请输入用户名&quot;&gt;
        &lt;/p&gt;
      &lt;/p&gt;
      &lt;p class=&quot;form-group yangshi2&quot;&gt;
        &lt;label for=&quot;lastname&quot; class=&quot;col-sm-2 control-label&quot;&gt;密码:&lt;/label&gt;
        &lt;p class=&quot;col-sm-10&quot;&gt;
          &lt;input type=&quot;text&quot; class=&quot;form-control pwd&quot; name=&quot;pwd&quot; placeholder=&quot;请输入密码&quot;&gt;
        &lt;/p&gt;
      &lt;/p&gt;
      &lt;p class=&quot;form-group&quot;&gt;
        &lt;p class=&quot;col-sm-offset-2 col-sm-10&quot;&gt;
          &lt;p class=&quot;checkbox&quot;&gt;
            &lt;label&gt;
            &lt;input type=&quot;checkbox&quot;&gt;
            保存密码 &lt;/label&gt;
            &lt;label&gt;
            &lt;input type=&quot;checkbox&quot;&gt;
            下次自动登录 &lt;/label&gt;
          &lt;/p&gt;
        &lt;/p&gt;
      &lt;/p&gt;
      &lt;p class=&quot;form-group&quot;&gt;
        &lt;p class=&quot;col-sm-offset-2 col-sm-10&quot;&gt;
          &lt;button type=&quot;submit&quot; class=&quot;btn btn-warning&quot; value=&quot;登录&quot; onclick=&quot;return login()&quot; &gt;
          登录
          &lt;/button&gt;
          
        &lt;/p&gt;
      &lt;/p&gt;
    &lt;/p&gt;  
  &lt;/form&gt;    
  &lt;/body&gt;
&lt;/html&gt;
登录后复制

4.登录页面的处理页面RBloginchuli.php

&lt;?php
session_start();
$uid = $_POST[&quot;uid&quot;];
$pwd = $_POST[&quot;pwd&quot;];
require_once &quot;./DBDA.class.php&quot;;
$db = new DBDA();
$sql = &quot;select pwd from users where uid=&#39;{$uid}&#39;&quot;;
$mm = $db-&gt;StrQuery($sql,0);
if(!empty($pwd) &amp;&amp; $pwd==$mm){
  $_SESSION[&quot;uid&quot;] = $uid;
  header(&quot;location:RBmain.php&quot;);
}else{
  echo &quot;&lt;script&gt;alert(&#39;用户名或密码有误!&#39;)&lt;/script&gt;&quot;;
}
登录后复制

5.最后做用户的主页面RBmain.php

&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;权限主页面&lt;/title&gt;    
  &lt;/head&gt;
  &lt;body&gt;
    &lt;?php
    session_start();
    if(empty($_SESSION[&quot;uid&quot;])){
      header(&quot;location:RBlogin.php&quot;);
      exit;
    }
    $uid = $_SESSION[&quot;uid&quot;];
    
    require_once &quot;./DBDA.class.php&quot;;
    $db = new DBDA();
    //子查询
    $sql = &quot;select * from roleswork where code in (select * from roles_roleswork where rolesuid in (select * from users_roles where usersuid=&#39;{$uid}&#39;))&quot;;
    $arr = $db-&gt;query($sql,0);
    foreach($arr as $v){
      echo &quot;&lt;p class=&#39;menu&#39;&gt;{$v[1]}&lt;/p&gt;&quot;;
    }    
    ?&gt;
        
  &lt;/body&gt;
&lt;/html&gt;
登录后复制

效果如图:

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

【相关教程推荐】

1. php编程从入门到精通全套视频教程
2. php从入门到精通 
3. bootstrap教程

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和时间

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

CakePHP 项目配置

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

CakePHP 文件上传

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

讨论 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发

See all articles