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. C#连接各种数据库的方法(文档)

    1.C#连接连接Access程序代码: ------------------------------------------------------------------------------- ...

  2. Jmeter接口测试系列之参数化方法

    至于参数化的用途,我这里就不多说了,本文主要介绍最全.最强大的参数化方法,对参数化有一个彻底的认识,这里提供了多种参数化方法 1.jmeter参数化之用户变量   在测试计划里面添加一个用户自定义的变 ...

  3. sql server 2008安装要求

    sql server 2008安装要求 新部署的R2需要被安装在格式化为NTFS格式的磁盘上: 微软的.NET Framework 3.5 SP1 微软Windows Installer 4.5或以上 ...

  4. 使用BarcodeLib.Barcode.ASP.NET生成条形码

    生成条形码图片,然后在前台页面展示: <img id="img" src="Mobile/<%=url %>"/> public str ...

  5. HDU 5326(2015多校3)-Work(dfs)

    题目地址:pid=5326">HDU 5326 题意:给一张有向图n个点.n - 1(....输入n-1)条边. A指向B代表A管理B.然后能够间接管理,比方A管理B,B管理C.则A管 ...

  6. Android音频文件浏览+音频播放

    该Demo执行后,会显示全部你sd卡上的音乐文件列表, 并能够点击列表选择某一首歌曲进行播放. 执行效果: 点击download出现: 然后点击歌曲调用系统播放器播放. 源码: activity_au ...

  7. vue-cli 打包(npm run build) 出现 ERROR in xx..js from UglifyJs Unexpected token: punc (()

    之前打包还没问题,这次就报错了,后来发现原来是少了 .babelrc 文件, 网上找了好多方法都不行,后来看了之前的项目,原来是少了 .babelrc  文件, 只要在根目录下建立这个文件, 文件内容 ...

  8. 蓝桥杯 第三届C/C++预赛真题(9) 夺冠概率(手工计算概率)

    足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能. 假设有甲.乙.丙.丁四个球队.根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 甲 乙 丙 丁 甲 - 0.1 0.3 0.5乙 ...

  9. 《程序员级别鉴定书》 ----中级.NET开发者

    面向接口.面向对象和面向方面编程区别 面向接口编程 是面向对象编程体系中的思想精髓之一 (博客园文章链接面向接口编程详解(一)——思想基础) 面向接口编程 接口是一组规则集合 面向对象编程 对具有相同 ...

  10. 【BZOJ4641】基因改造 KMP

    [BZOJ4641]基因改造 Description "人类智慧的冰峰,只有萌萌哒的我寂寞地守望." --TB TB正走在改造人类智慧基因的路上.TB发现人类智慧基因一点也不萌萌哒 ...