这里有新鲜出炉的PHP教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于web开发领域。PHP的文件后缀名为php。
本篇文章主要介绍了php实现简单的权限管理的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
今天主要来实现一个权限管理系统,它主要是为了给不同的用户设定不同的权限,从而实现不同权限的用户登录之后使用的功能不一样,首先先看下数据库
总共有5张表,qx_user,qx_rules和qx_juese 3张表与另外2张表形成"w"型的关系,也是比较常见的一种权限数据库的方式,首先先做权限的设定,也就是管理层给不同用户设定不同权限。
guanli.php
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>
- 无标题文档
- </title>
- <script src="../../dist/js/jquery-1.11.2.min.js">
- </script>
- </head>
- <body>
- <h1>
- 用户与角色管理
- </h1>
- <div>
- 请选择用户:
- <select id="user">
- <?php include( "../../fengzhuang/DBDA.class.php"); $db=n ew DBDA(); $sql="select * from qx_user"
- ; $arr=$ db->
- Query($sql); foreach($arr as $v) { echo "
- <option value='{$v[0]}'>
- {$v[2]}
- </option>
- "; } ?>
- </select>
- </div>
- <br />
- <div>
- 请选择角色:
- <?php $sjs="select * from qx_juese" ; $ajs=$ db->
- Query($sjs); foreach($ajs as $v) { echo "
- <input type='checkbox' value='{$v[0]}' class='ck' />
- {$v[1]} "; } ?>
- </div>
- <br />
- <input type="button" value="确定" id="btn" />
- </body>
- <script type="text/javascript">
- $(document).ready(function(e) {
- //选中默认角色
- Xuan();
- //当用户选中变化的时候,去选中相应角色
- $("#user").change(function() {
- Xuan();
- })
- //点击确定保存角色信息
- $("#btn").click(function() {
- var uid = $("#user").val();
- var juese = "";
- var ck = $(".ck");
- for (var i = 0; i < ck.length; i++) {
- if (ck.eq(i).prop("checked")) {
- juese += ck.eq(i).val() + "|";
- }
- }
- juese = juese.substr(0, juese.length - 1);
- $.ajax({
- url: "chuli.php",
- data: {
- uid: uid,
- juese: juese,
- type: 1
- },
- type: "POST",
- dataType: "TEXT",
- success: function(data) {
- alert("保存成功!");
- }
- });
- })
- });
- //选中默认角色
- function Xuan() {
- var uid = $("#user").val();
- $.ajax({
- url: "chuli.php",
- data: {
- uid: uid,
- type: 0
- },
- type: "POST",
- dataType: "TEXT",
- success: function(data) {
- var juese = data.trim().split("|");
- var ck = $(".ck");
- ck.prop("checked", false);
- for (var i = 0; i < ck.length; i++) {
- if (juese.indexOf(ck.eq(i).val()) >= 0) {
- ck.eq(i).prop("checked", true);
- }
- }
- }
- });
- }
- </script>
- </html>
chuli.php
- <?php
- include("../../fengzhuang/DBDA.class.php");
- $db = new DBDA();
- $type = $_POST["type"];
- switch($type)
- {
- case 0:
- $uid = $_POST["uid"];
- $sql = "select jueseid from qx_uij where useid='{$uid}'";
- echo $db->StrQuery($sql);
- break;
- case 1:
- $uid = $_POST["uid"];
- $juese = $_POST["juese"];
- $sdel = "delete from qx_uij where useid='{$uid}'";
- $db->Query($sdel,0);
- $arr = explode("|",$juese);
- foreach($arr as $v)
- {
- echo $v;
- $sql = "insert into qx_uij values('','{$uid}','{$v}')";
- $db->Query($sql,0);
- }
- echo "OK";
- break;
- }
实现的效果,如图:
我可以选择给哪个用户设置权限,给他一个什么角色,可以是一个,也可以多个,点击确定就在数据库中赋予了该权限。
例如:马七本身有前台和市场2个角色
现在,删除前台,增加财务
那我们看看数据库添加了没有
马七那项已经改了,j003和j004就是市场和财务角色。
接下来做的是登录某个账号,查看自己的职能
login.php
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <body>
- <h1>登录页面</h1>
- <form action="logincl.php" method="post">
- <input type="text" name="uid" />
- <input type="password" name="pwd" />
- <input type="submit" value="登录" />
- </form>
- </body>
- </html>
logincl.php
- <?php
- session_start();
- include("../../fengzhuang/DBDA.class.php");
- $db = new DBDA();
- $uid = $_POST["uid"];
- $pwd = $_POST["pwd"];
- $sql="select pwd from qx_user where uid='{$uid}'";
- $mm = $db->StrQuery($sql);
- if($mm==$pwd && !empty($pwd))
- {
- $_SESSION["uid"]=$uid;
- header("location:main.php");
- }
main.php
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <body>
- <h1>主页面</h1>
- <?php
- session_start();
- include("../../fengzhuang/DBDA.class.php");
- $db = new DBDA();
- if(empty($_SESSION["uid"]))
- {
- header("location:login.php");
- exit;
- }
- //登录者用户名
- $uid = $_SESSION["uid"];
- //根据用户名查角色
- $sjs = "select jueseid from qx_uij where useid='{$uid}'";
- $ajs = $db->Query($sjs);
- //定义一个存放功能代号的数组
- $arr = array();
- //根据角色代号查功能代号
- foreach($ajs as $vjs)
- {
- $jsid = $vjs[0]; //角色代号
- $sgn = "select ruleid from qx_jwr where jueseid='{$jsid}'";
- $strgn = $db->StrQuery($sgn);
- $agn = explode("|",$strgn);
- foreach($agn as $vgn)
- {
- array_push($arr,$vgn);
- }
- }
- //去重,显示
- $arr = array_unique($arr);
- foreach($arr as $v)
- {
- $sql = "select * from qx_rules where code='{$v}'";
- $attr = $db->Query($sql);
- $attr[0][0]; $attr[0][1];
- echo "<div code='{$attr[0][0]}'>{$attr[0][1]}</div>";
- }
- ?>
- </body>
- </html>
完成的效果,如图:
显示李四的职能是:
看看数据库的是不是一样的:
发现结果是一样的。这样权限管理就做完了。
来源: http://www.phperz.com/article/17/0911/345354.html