流程:

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

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

数据库:

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. Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)

    http://my.phirobot.com/blog/2014-02-opencv_configuration_in_vs.html 2012年4月给同学写了篇傻瓜式的 VS2010+Opencv- ...

  2. Ubuntu 下建立WiFi热点的方法

    使用ap-hotspot来创建WIFI热点.终端里输入: $ sudo add-apt-repository ppa:nilarimogard/webupd8 $ sudo apt-get updat ...

  3. UNIX网络编程读书笔记:原始套接口

    概述 应用程序可以绕过传输层而直接使用IPv4和IPv6,这称为原始套接口(raw socket).http://www.cnblogs.com/nufangrensheng/p/3583435.ht ...

  4. 算法笔记_033:十六进制转八进制(Java)

    目录 1 问题描述 2 解决方案 2.1 注意问题 2.2 具体实现代码   1 问题描述 具体问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1& ...

  5. jvm分析备忘

    是什么 jps   查看所有的jvm进程,包括进程ID,进程启动的路径等等. jstack   观察jvm中当前所有线程的运行情况和线程当前状态. 系统崩溃了?如果java程序崩溃生成core文件,j ...

  6. [Android exception] /data/app/com.tongyan.tutelage-1/lib/arm/libstlport_shared.so: has text relocations

    java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.tongyan.tutelage-1/lib/arm/libstlport_s ...

  7. Unix 网络编程 I/O 模型 第六章

    前提,也是重点是, 当接收收据.或者读取数据时,分两步 1 等待数据准备好. 2 从内核拷贝数据到进程. 对于一个network IO 即 socket(这里我们以read举例),它会涉及到两个系统对 ...

  8. chrome 如何官网下载谷歌浏览器离线安装包

      如何官网下载chrome谷歌浏览器离线安装包 CreateTime--2017年7月4日08:38:30Author:Marydon 参考链接:http://jingyan.baidu.com/a ...

  9. 数据库选型之MySQL(多线程并发)

    刘勇    Email: lyssym@sina.com 本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于高频中心库 ...

  10. 【JS】jQuery设置定时器,访问服务器(PHP示例)配合微信、支付宝原生支付,跳转web网页

    废话不多说,直接上代码: 把下面的js放在html的</body>即可 <!-- 设置页面定时器,3秒查询一次数据库该订单状态,ok就跳走 --xzz1115> <scr ...