流程:

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

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

数据库:

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. ItermCF的MR并行实现

    ItermCF的MR并行实现 @(Hadoop) ItermCF的基本思想 基于物品相似度的协同过滤推荐的思想大致可分为两部分: 1.计算物与物之前的相似度 2.根据用户的行为历史,给出和历史列表中的 ...

  2. 从HttpServletRequest获取完整的请求路径

    String url = request.getRequestURI(); // 这个方法只能获得不包含参数的请求url,且只包含相对路径 StringBuffer url_buffer = requ ...

  3. (剑指Offer)面试题4:替换空格

    题目: 请实现一个函数,把字符串中的每个空格替换成“%20”,例如输入“We are happy”,则输出“We%20are%20happy”. 思路: 背景: 在网络编程中,如果URL参数中含有特殊 ...

  4. 极客Web前端开发资源大荟萃#001

    每周极客都将总结本周最精彩的素材提供给大家,希望可以带给你更多地灵感和帮助!极客#GB课程库#现已上线,无论你是初级.中级.还是正在进修的高级前端工程师.这里都将帮助你得到更多更高效的学习.原文:极客 ...

  5. SQL Server 之 与 OVER() 函数

    在SQL SERVER 2005/2008支持两种排名开窗函数和聚集开窗函数. 一. OVER() 函数 语法结构:OVER( [ PARTITION BY ... ] [ ORDER BY ... ...

  6. UNIX网络编程读书笔记:基本UDP套接口编程

    概述 使用UDP编写的一些流行的应用程序有:DNS(域名系统).NFS(网络文件系统)和SNMP(简单网络管理协议). 如下图所示,给出了典型的UDP客户/服务器程序的函数调用: 客户不与服务器建立连 ...

  7. HTTP浏览器缓存机制

    来自:http://kb.cnblogs.com/page/165307/ 浏览器缓存机制 浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires: Cache-control等 ...

  8. CSV 读写

    using System; using System.IO; using System.Runtime.InteropServices; using UnityEngine; public class ...

  9. Set 和 WeakSet 数据结构

    Set 和 WeakSet 数据结构是ES6新增. 它与数组非常相似,但是Set数据结构的成员都是唯一的. 特别说明:Set 中只能添加一个NaN 一.Set 数据结构: var set = new ...

  10. OFBiz:处理nextRequestResponse

    这里的nextRequestResponse是指RequestHandler中doRequest()函数在最后使用的一个变量,doRequest()会依据nextRequestResponse返回不同 ...