流程:

在权限管理页面,默认显示用户的角色,更改复选框的按钮内容,可以改变角色,点击确定提交至数据库

在登陆之后,只显示该用户的角色所对应的权限

数据库:

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="../jquery-1.11.2.min.js"></script>
</head> <body>
<h1>权限管理</h1>
<div>请选择用户:
<select id="user">
<?php
include("../mydbda.php");
$db = new mydbda();
$sqlu = "select * from Users";
$str = $db->Select($sqlu,"CX","mydb");
$hangu = explode("|",$str);
for($i=0;$i<count($hangu);$i++)
{
list($uid,$pwd,$name) = explode("^",$hangu[$i]);
echo "<option value='{$uid}'>{$name}</option>";
}
?>
</select></div><br /> <div>请选择角色:</div><br /> <div>
<?php $sqlj = "select * from JueSe";
$strj = $db->Select($sqlj,"CX","mydb");
$hangj = explode("|",$strj);
for($i=0;$i<count($hangj);$i++)
{
list($code,$name) = explode("^",$hangj[$i]);
echo "<input type='checkbox' class='juese' value='{$code}' />{$name}&nbsp;";
} ?> </div><br />
<div><input type="button" id="sure" value="确定"/></div>
</body>
<script type="text/javascript">
$(document).ready(function(e) { Xianshi($("#user").val()); //选中用户,显示其角色
$("#user").change(function(){ var uid =$(this).val(); Xianshi(uid); }) function Xianshi(uid)
{
var ckall = $(".juese");
for(var j=0;j<ckall.length;j++)
{
ckall.removeAttr("checked");
//ckall.attr("checked","false");
//document.getElementById().setAttribute(
} $.ajax({ url:"chulijuese.php",
data:{uid:uid},
type:"POST",
dataType:"TEXT",
success: function(data){
if(!data == "")
{
var hang = data.split("|");
for(var i=0;i<hang.length;i++)
{
var lie = hang[i].split("^");
var ck = $(".juese"); for(var j=0;j<ck.length;j++)
{
if(ck.eq(j).val() == lie[2])
{
ck.eq(j).prop("checked","true");
} }
}
} } });
} //添加按钮
$("#sure").click(function(){ var uid = $("#user").val();
var ck = $(".juese");
var str = "";
for(var j=0;j<ck.length;j++)
{
if(ck.eq(j)[0].checked == true)
{
str = str + ck.eq(j).val()+"|";
}
} str = str.substr(0,str.length-1); $.ajax({ url:"chuliadd.php",
data:{uid:uid,str:str},
type:"POST",
dataType:"TEXT",
success: function(data){ if(data == "OK")
{
alert("操作成功!");
} } }); }) }); </script>
</html>

chuliadd.php

<?php
include("../mydbda.php");
$db = new mydbda();
$uid = $_POST["uid"];
$str = $_POST["str"]; $sqld = "delete from UserInJueSe where UserId = '{$uid}'";
$jg = $db->Select($sqld,"QT","mydb"); if($jg == "OK")
{
$juese = explode("|",$str); for($i=0;$i<count($juese);$i++)
{
$sql = "insert into UserInJueSe values('','".$uid."','".$juese[$i]."')";
$db->Select($sql,"QT","mydb");
} echo "OK";
} ?>

chulijuese.php

<?php
include("../mydbda.php");
$uid = $_POST["uid"];
$sql = "select * from UserInJueSe where UserId = '{$uid}'";
$db = new mydbda();
$str = $db->Select($sql,"CX","mydb"); echo $str; ?>

denglu.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="main.php" method="post">
<div>用户名:<input type="text" name="uid"/></div>
<div>密码:<input type="text" name="pwd"/></div>
<input type="submit" value="登录"/>
</form>
</body>
</html>

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
include("../mydbda.php");
$db = new mydbda();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"]; $sql = "select count(*) from Users where Uid ='".$uid."' and Pwd = '".$pwd."'";
$str = $db->Select($sql,"CX","mydb");
if($str == 1)
{
}
else
{
header("Location:denglu.php");
} ?> <div style="width:100%; height:35px; background-color:#60F; color:white; font-size:20px;"> <div style="width:150px; height:35px; vertical-align:middle; line-height:35px; float:left; text-align:center;">权限管理</div> <?php $sqlj = "select * from UserInJueSe where UserId = '{$uid}'";
$strj = $db->Select($sqlj,"CX","mydb"); $hangj = explode("|",$strj);
$xianshi = array();
for($i=0; $i<count($hangj);$i++)
{
$liej = explode("^",$hangj[$i]); $sqlr = "select RuleId from JueSeWithRules where JueSeId = '".$liej[2]."'"; $strr = $db->Select($sqlr,"CX","mydb"); $hangr = explode("|",$strr); $xianshi = array_merge($xianshi,$hangr);//合并数组
} $xianshi = array_unique($xianshi); //去重 for($i=0; $i<count($xianshi);$i++)
{
$sqlname = "select * from Rules where Code = '".$xianshi[$i]."'"; $strname = $db->Select($sqlname,"CX","mydb"); list($code,$name) = explode("^",$strname); echo "<div style='width:150px; height:35px; vertical-align:middle; line-height:35px; float:left; text-align:center;'>{$name}</div>"; } ?> </div> </body>
</html>

PHP——小尾巴之权限管理的更多相关文章

  1. MProtect使用小计【三】 – 权限管理

    说明 本篇简单的说一下怎么样使用的VMProtect的权限管理功能,使我们的程序拥有注册码的功能.只用的注册版的程序才能执行指定的函数. 同样这个功能VMProtect也有例子位置在:安装目录\VMP ...

  2. Android6.0运行时权限管理

    自从Android6.0发布以来,在权限上做出了很大的变动,不再是之前的只要在manifest设置就可以任意获取权限,而是更加的注重用户的隐私和体验,不会再强迫用户因拒绝不该拥有的权限而导致的无法安装 ...

  3. struts2学习之旅三 权限管理和导航设计

    1,权限管理的db设计和dao实现,尽量简单快速有效: db的设计如下:权限按照角色来赋给用户: 权限对应每一个具体的功能,有菜单级别的,有导航级别的,还有页面级别的功能: 涉及到权限的敏感操作一般都 ...

  4. 基于EasyUI Treegrid的权限管理资源列表

    1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...

  5. winform快速开发平台 -> 通用权限管理之动态菜单

    这几个月一直忙APP的项目,没来得及更新项目,想想该抽出时间整理一下开发思路,跟大家分享,同时也希望得到宝贵的建议. 先说一下我们的权限管理的的设计思路,首先一个企业信息化管理系统一定会用到权限管理, ...

  6. Docker Volume 之权限管理(转)

    Volume数据卷是Docker的一个重要概念.数据卷是可供一个或多个容器使用的特殊目录,可以为容器应用存储提供有价值的特性: 持久化数据与容器的生命周期解耦:在容器删除之后数据卷中的内容可以保持.D ...

  7. 尝试封装适用于权限管理的通用API

    谈谈我对权限系统的简单理解 最近一段时间在研究权限系统,在园子里看到个很牛逼的开源的基于DDD-Lite的权限管理系统,并有幸加入了作者的QQ群,呵呵,受到了很大的影响.对于权限管理我有我自己的一些简 ...

  8. 用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限

    先来一堆关于上篇文章的废话(不喜者点此隐藏) 今天把博客加了个小功能,就是点标题可以隐藏或展示相关内容,做法很傻,就是引用了bootstrap的两个css类和全部的js文件,其实这样的小功能完全应该自 ...

  9. ASP.NET 开发必备知识点(2):那些年追过的ASP.NET权限管理

    一.前言 在前一篇文章已经为大家介绍了OWIN和Katana,有了对他们的了解之后,才能更好地去学习Asp.net Identity,因为Asp.net Identity的实现集成了Owin.其实在A ...

随机推荐

  1. 利用MyEclipse开发一个调用webservice接口的程序

    上一篇文章我们已经学习了如何使用Java 工具MyEclipse开发一个webservice接口,那么接口开发好了如何调用?接下来我们就来解决这个问题. 1:首先随便创建一个Java project选 ...

  2. Google帮助IE浏览器实现对SVG支持

    可缩放矢量图形(SVG)的意识就是一个用于描述二维矢量图形的一种开放图形格式. SVG现在已经能够广泛得应用到许多的项目当中,包括KDE和维基百科等.但是 Internet Explorer浏览器的内 ...

  3. 创建组件“AxLicenseControl”失败

    打开以前的程序,准备来添加一个功能,打开主程序就报错: 我未曾改变过版本,原来是由于破解测试需要,修改了系统时间,时间对不了,ArcGIS的问题,改过来就正常了.

  4. STL - 迭代器 - 安插型迭代器

    list<, , , , , , , , }; cout << "** collection 1: **" << endl; ContainerUti ...

  5. AUC(Area Under roc Curve)学习笔记

    AUC是一种用来度量分类模型好坏的一个标准. ROC分析是从医疗分析领域引入了一种新的分类模型performance评判方法. ROC的全名叫做Receiver Operating Character ...

  6. MESI-CPU缓存一致性协议

    转http://blog.csdn.net/realxie/article/details/7317630 http://en.wikipedia.org/wiki/MESI_protocol MES ...

  7. RDLC 动态列

    很久没有写博客了,关于动态列,国内很少资料有介绍动态列的,所想写点心得给哥们 啥是动态列呢?通常我们用存储过程时有列转行和行转列的做法,那么在RDLC 怎么支持呢?其实很简单,就是利用了RDLC的 C ...

  8. UITextView 添加 pleaceholder

    UITextView 默认没有 pleaceholder属性: 我们可以通过多种方式添加 在UITextView的代理方法中写 - (void)textViewDidBeginEditing:(UIT ...

  9. GCC高级测试功能扩展——程序性能测试工具gprof、程序覆盖测试工具gcov

    gprof是GNU组织下的一个比较有用的性能测试功能: 主要功能:   找出应用程序中消耗CPU时间最多的函数: 产生程序运行时的函数调用关系.调用次数 基本原理:   首先用户要使用gprof工具, ...

  10. &lt;转&gt;云主机配置OpenStack使用spice的方法

    按官方文档(openstack-install-guide-yum-juno)搭建和配置的OpenStack默认使用novnc作为云主机的控制台訪问方式,假设须要配置使用GUI的操作系统,会显得比較尴 ...