login页面
<form action="loginchuli.php" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:<input type="text" name="pwd" /></div>
<input type="submit" value="登录" />
</form>
loginchuli页面
<?php
session_start();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"]; include("../DBDA.php");
$db = new DBDA(); $sql = "select count(*) from Users where Uid='{$uid}' and Pwd = '{$pwd}'"; $z = $db->StrQuery($sql); if($z == 1)
{
$_SESSION["uid"] = $uid;
header("location:main.php");
}
else
{
header("location:login.php");
}

main主页面

<?php
session_start(); if(empty($_SESSION["uid"]))
{
header("location:login.php");
exit;
}
$uid = $_SESSION["uid"]; include("../DBDA.php");
$db = new DBDA();
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
*{ margin:0px auto; padding:0px}
#menu{
width:100%;
height:40px;
}
.cd{
width:100px;
height:40px;
background-color:#60C;
color:white;
font-size:18px;
text-align:center;
line-height:40px;
vertical-align:middle;
float:left;
}
.cd:hover{ background-color:#F33;
cursor:pointer; }
</style>
</head> <body>
<br />
<center><h1>主页面</h1></center>
<br />
<a href="login.php">退出 <?php echo $uid; ?></a>
<br /> <div id="menu">
<div class="cd">权限管理</div> <?php //根据用户名找到所对应的角色代号
$sjs = "select JueSeId from UserInJueSe where UserId ='{$uid}' "; $ajs = $db->Query($sjs); //根据角色代号找到对应的功能
$all = array();//存储该用户所有的功能代号 foreach($ajs as $vjs)
{
$sgn = "select RuleId from JueSeWithRules where JueSeId ='{$vjs[0]}'";
$agn = $db->Query($sgn); foreach($agn as $vgn)
{
array_push($all,$vgn[0]);
}
} $all = array_unique($all); //显示菜单
foreach($all as $vall)
{
$sn = "select Name from Rules where Code = '{$vall}'";
$name = $db->StrQuery($sn); echo "<div class='cd'>{$name}</div>";
} ?> </div>

guanli页面

<h1>权限管理</h1>

<div>请选择用户:
<select id="user">
<?php
include("../DBDA.php");
$db = new DBDA(); $sql = "select * from Users";
$attr = $db->Query($sql); foreach($attr as $v)
{
echo "<option value='{$v[0]}'>{$v[2]}</option>";
} ?>
</select>
</div>
<br />
<div>
<div>请选择角色:</div>
<br />
<div>
<?php
$sqljs = "select * from JueSe";
$attrjs = $db->Query($sqljs); foreach($attrjs as $v)
{
echo "<input class='js' type='checkbox' value='{$v[0]}' /> {$v[1]} &nbsp;";
}
?>
</div>
</div>
<br />
<div>
<input type="button" value="确定" id="btn" />
</div>
</body>
<script type="text/javascript">
$(document).ready(function(e) { ShowJueSe(); $("#user").change(function(){ ShowJueSe(); }) function ShowJueSe()
{
var uid = $("#user").val();
$.ajax({
url:"seljuese.php",
data:{uid:uid},
type:"POST",
dataType:"TEXT",
success: function(data){ var shuju = data.split("|"); var ck = $(".js");
ck.prop("checked",false); for(var i=0;i<ck.length;i++)
{
var v = ck.eq(i).val(); if($.inArray(v,shuju)>=0)
{
ck.eq(i).prop("checked",true);
} } } }); } $("#btn").click(function(){ var uid = $("#user").val(); var ck = $(".js");
var str = ""; for(var i=0;i<ck.length;i++)
{
if(ck.eq(i).prop("checked"))
{
str = str+ck.eq(i).val()+"|";
}
} str = str.substr(0,str.length-1); $.ajax({
url:"add.php",
data:{uid:uid,juese:str},
type:"POST",
dataType:"TEXT",
success: function(data){ if(data.trim()=="OK")
{
alert("添加成功!");
}
else
{
alert("添加失败!");
}
} }); }) });
</script>

add页面

<?php
include("../DBDA.php");
$db = new DBDA(); $uid = $_POST["uid"];
$js = $_POST["juese"]; $juse = explode("|",$js); $bs = true; //清空该用户具有的所有角色
$sqldel = "delete from UserInJueSe where UserId = '{$uid}' ";
if(!$db->Query($sqldel,0))
{
$bs = $bs && false;
} //添加角色信息
foreach($juse as $v)
{
$sql = "insert into UserInJueSe values('','{$uid}','{$v}')";
if(!$db->Query($sql,0))
{
$bs = $bs && false;
}
} if($bs)
{
echo "OK";
}
else
{
echo "NO";
}

seljuese页面

<?php
include("../DBDA.php");
$db = new DBDA(); $uid = $_POST["uid"]; $sql = "select JueSeId from UserInJueSe where UserId = '{$uid}'"; echo $db->StrQuery($sql);

PHP 权限管理的更多相关文章

  1. Android权限管理之RxPermission解决Android 6.0 适配问题

    前言: 上篇重点学习了Android 6.0的运行时权限,今天还是围绕着Android 6.0权限适配来总结学习,这里主要介绍一下我们公司解决Android 6.0权限适配的方案:RxJava+RxP ...

  2. Android权限管理之Android 6.0运行时权限及解决办法

    前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以 ...

  3. Android权限管理之Permission权限机制及使用

    前言: 最近突然喜欢上一句诗:"宠辱不惊,看庭前花开花落:去留无意,望天空云卷云舒." 哈哈~,这个和今天的主题无关,最近只要不学习总觉得生活中少了点什么,所以想着围绕着最近面试过 ...

  4. SpringMVC+Shiro权限管理【转】

    1.权限的简单描述 2.实例表结构及内容及POJO 3.Shiro-pom.xml 4.Shiro-web.xml 5.Shiro-MyShiro-权限认证,登录认证层 6.Shiro-applica ...

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

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

  6. Oracle 表空间和用户权限管理

    一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...

  7. [Django]用户权限学习系列之权限管理界面实现

    本系列前三章: http://www.cnblogs.com/CQ-LQJ/p/5604331.htmlPermission权限基本操作指令 http://www.cnblogs.com/CQ-LQJ ...

  8. [Django]用户权限学习系列之设计自有权限管理系统设计思路

    若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ- ...

  9. 我的MYSQL学习心得(十三) 权限管理

    我的MYSQL学习心得(十三) 权限管理 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...

  10. 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布

    距离上一篇OpenAuth.net的文章已经有5个多月了,在这段时间里项目得到了很多朋友的认可,开源中国上面的Star数接近300,于是坚定了我做下去的信心.最近稍微清闲点,正式推出1.0版,并在阿里 ...

随机推荐

  1. 【BZOJ】2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛(树形dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2060 裸的树形dp d[x][1]表示访问x的数量,d[x][0]表示不访问x的数量 d[x][1] ...

  2. HtmlEncode

    String.prototype.toHtmlEncode = function() { var str = this; str=str.replace("&"," ...

  3. 【ask】Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.

    1.周五对nodejs tcp长连接服务器框架进行压测,一切开始比较常规(没什么特殊问题). 2.突然手一哆嗦,把压测用的客户端群一起关闭了. 3.这个时候nodejs的服务器爆出了"Cau ...

  4. word页眉与页脚详解

    1.如何隔离封面等不需要插入页码的页面: 首先插入分节符下一页(一定是分节符),再在下一页(即要开始插入页码的页面)选择视图-->页眉和页脚-->设置为取消链接到前一页.设置页码格式为起始 ...

  5. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.1——单元测试

    问题: 你想要测试app中的非android部分. 解决方案: 可以使用Android Studio1.1里面增加的单元测支持和Android的Gradle插件. 讨论: ADT插件只支持集成测试,并 ...

  6. 55、Android网络图片 加载缓存处理库的使用

         先来一个普通的加载图片的方法. import android.annotation.SuppressLint; import android.app.Activity; import and ...

  7. jeesite学习笔记(一) 项目框架

    JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台. 在github上,对jeesite平台有详细的介绍,这里稍作整理,给出项目的内置功能 ...

  8. golang build 编译规则

    文章来源: http://blog.csdn.net/varding/article/details/12675971 讲述了golang中的条件编译,摘要如下: 第一种条件编译的方法:编译标签 编译 ...

  9. 浅析PageRank算法(转)

    浅析PageRank算法 本文首先会讨论搜索引擎的核心难题,同时讨论早期搜索引擎关于结果页面重要性评价算法的困境,借此引出PageRank产生的背景.第二部分会详细讨论PageRank的思想来源.基础 ...

  10. HDU 5892 Resident Evil

    题目链接:传送门 题目大意:有50种动物,给你n*n的矩阵,m次操作,P代表加入操作,在左上角 x1,y1 到右下角 x2,y2,的矩形范围内加入 种类为x,数量为y的动物. Q代表询问操作,在左上角 ...