rbac权限管理实现(rbac 权限)

rbac权限管理实现(rbac 权限)在说权限管理前 应该先知道权限管理要有哪些功能 1 用户只能访问 指定的控制器 指定的方法 2 用户可以存在于多个用户组里 3 用户组可以选择 指定的控制器 指定的方法 4 可以添加控制器和方法 RBAC Role Based Access Control 基于角色的访问控制 就是用户通过角色与权限进行关联 简单地说 一个用户拥有若干角色

大家好,我是讯享网,很高兴认识大家。



在说权限管理前,应该先知道权限管理要有哪些功能:   (1)、用户只能访问,指定的控制器,指定的方法   (2)、用户可以存在于多个用户组里   (3)、用户组可以选择,指定的控制器,指定的方法   (4)、可以添加控制器和方法 

讯享网
讯享网RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。 
讯享网

 

1.数据库的设计 写五张表,首先:用户表、角色表、功能表: 
讯享网连接表的表..再来就是角色功能表与用户角色表: 
2.管理员的管理页面, (1).分别显示用户名和角色名 (2).根据下拉用户名的变化,更改相应复选框中的角色 (3).修改用户角色时,先要把用户对应角色表,这个用户所有的信息删除,再把取到的用户名和角色代号新添加。 利用下拉列表:嵌入php查询并遍历出来,以下拉列表的方式显示出来 <select id=user> <?php
include (
https://www.cnblogs.com/zhangtianle/db.class.php);
\(db </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> db(); \)sql
= select * from qxyh;
\(arr </span>= \)db-&gt;Query(\(sql); </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> (\)arr as \(v) { echo </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&lt;option value='{\)v[0]}’&gt;{\(v[2]}&lt;/option&gt;</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; } </span>?&gt; &lt;/<span style="color: rgba(0, 0, 255, 1)">select</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> 选择角色,用多选框:</span> &lt;p&gt;<span style="color: rgba(0, 0, 0, 1)"> 请选择角色 </span>&lt;?<span style="color: rgba(0, 0, 0, 1)">php \)sjs = select * from qxzw; \(ajs </span>= \)db-&gt;Query(\(sjs); </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> (\)ajs as $v) {
讯享网echo </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&lt;input type='checkbox' value='{$v[0]}' class='ck'/&gt;{$v[1]} </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; 
} ?&gt; &lt;/p&gt; &lt;input type=button value=确定 id=btn/&gt; 图:
当用户发生变化的时候,相应的角色也相应变化,并且改变人员的角色信息,添加保存,添加保存的基本思路是先把数据库里人员对应的角色信息全部删除,然后再取到选中的部分,添加到数据库。 先来让他选中默认角色: &lt;script&gt; //选中默认角色  function xuan() 
讯享网{ </span><span style="color: rgba(0, 0, 255, 1)">var</span> uid = $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#user</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).val(); $.ajax({ url:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">chuli.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, data:{uid:uid,type:</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">}, type:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">POST</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, dataType:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">TEXT</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, success:function(data) { </span><span style="color: rgba(0, 0, 255, 1)">var</span> juese = data.trim().split(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">|</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">拆分完全都变成代号</span> <span style="color: rgba(0, 0, 255, 1)">var</span> ck = $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">.ck</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); ck.prop(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">checked</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i=<span style="color: rgba(128, 0, 128, 1)">0</span>;i&lt;ck.length;i++<span style="color: rgba(0, 0, 0, 1)">) { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">便利所有的列表</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(juese.indexOf(ck.eq(i).val())&gt;=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">) { ck.eq(i).prop(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">checked</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">); } } } }); } 
&lt;/script&gt; 来写他的处理页面: &lt;?php include (https://www.cnblogs.com/zhangtianle/db.class.php); \(db </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> db(); \)type = $_POST[type]; switch ($type) {
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">: $uid </span>= $_POST[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">uid</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select jid from qxyhzw WHERE uid='{$uid}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; echo $db</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">strQuery($sql); 
break; } 我们看下最后结果,登录成功就会进入主页,登录失败会提示错误 登录失败 再来,保存按钮: &lt;script&gt; //当用户变化的时候去选中相应角色
讯享网 $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#user</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).change(function(){ xuan(); }) </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">点击确定保存角色信息</span> $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#btn</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).click(function(){ </span><span style="color: rgba(0, 0, 255, 1)">var</span> uid = $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#user</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).val(); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">找到用户名</span> <span style="color: rgba(0, 0, 255, 1)">var</span> juese = <span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">; 
// 找到角色代号
 <span style="color: rgba(0, 0, 255, 1)">var</span> ck = $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">.ck</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">找到所有的checked</span> <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i=<span style="color: rgba(128, 0, 128, 1)">0</span>;i&lt;ck.length;i++<span style="color: rgba(0, 0, 0, 1)">) { 
// 遍历他
讯享网 <span style="color: rgba(0, 0, 255, 1)">if</span>(ck.eq(i).prop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">checked</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)) { 
// 如果他选中了,两个参数是改他的状态
 </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">娶过来值;加个|分割一下</span> juese += ck.eq(i).val()+<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">|</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; } } juese </span>= juese.substr(<span style="color: rgba(128, 0, 128, 1)">0</span>,juese.length-<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">); 
// 去掉最后的| $.ajax({
讯享网 url:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">chuli.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, data:{uid:uid,juese:juese,type:</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">}, type:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">POST</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, dataType:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">TEXT</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, success:function(data){ alert(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">修改成功</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); } }); }) }); 
&lt;/script&gt; 处理页面: &lt;?php include (https://www.cnblogs.com/zhangtianle/db.class.php); \(db </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> db(); \)type = $_POST[type]; switch ($type) { case 1:
 $uid </span>= $_POST[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">uid</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; $juese </span>= $_POST[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">juese</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 首先全部删掉里面的职位</span> $sdel = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">delete from qxyhzw WHERE uid = '{$uid}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; $db</span>-&gt;Query($sdel,<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">拆分取到的字符串</span> $arr= explode(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">|</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,$juese); </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($arr <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $v) { $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">insert into qxyhzw VALUES ('','{$uid}','{$v}')</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; $db</span>-&gt;query($sql,<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">); } echo </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">; 
} 看效果:
讯享网默认选中角色; 更改以后选择保存: 
管理页面总代码:
&lt;!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&gt;
&lt;html xmlns=http://www.w3.org/1999/xhtml&gt; &lt;head&gt; 
讯享网&lt;title&gt;无标题文档&lt;/title&gt; &lt;script src=https://www.cnblogs.com/zhangtianle/p/<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://www.cnblogs.com/zhangtianle/jquery-1.11.2.min.js</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/script&gt; 
&lt;/head&gt; &lt;body&gt; &lt;h1&gt;用户与角色管理&lt;/h1&gt; &lt;!–显示所有用户–&gt; &lt;p&gt;请选择用户 &lt;select id=user&gt;
&lt;?<span style="color: rgba(0, 0, 0, 1)">php include (</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://www.cnblogs.com/zhangtianle/db.class.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); $db </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> db(); $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select * from qxyh</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; $arr </span>= $db-&gt;<span style="color: rgba(0, 0, 0, 1)">Query($sql); </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($arr <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $v) { echo </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&lt;option value='{$v[0]}'&gt;{$v[2]}&lt;/option&gt;</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; } </span>?&gt; 
&lt;/select&gt; &lt;/p&gt; &lt;p&gt; 请选择角色 &lt;?php \(sjs </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select * from qxzw</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; \)ajs = \(db-&gt;<span style="color: rgba(0, 0, 0, 1)">Query(\)sjs); foreach (\(ajs <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> \)v) {
讯享网echo </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&lt;input type='checkbox' value='{$v[0]}' class='ck'/&gt;{$v[1]} </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; 
} ?&gt; &lt;/p&gt; &lt;input type=button value=确定 id=btn/&gt; &lt;/body&gt; &lt;/html&gt; &lt;script type=text/javascript&gt;
$(document).ready(function(e){ xuan(); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">当用户变化的时候去选中相应角色</span> $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#user</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).change(function(){ xuan(); }) </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">点击确定保存角色信息</span> $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#btn</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).click(function(){ </span><span style="color: rgba(0, 0, 255, 1)">var</span> uid = $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#user</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).val(); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">找到用户名</span> <span style="color: rgba(0, 0, 255, 1)">var</span> juese = <span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">; 
// 找到角色代号
讯享网 <span style="color: rgba(0, 0, 255, 1)">var</span> ck = $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">.ck</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">找到所有的checked</span> <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i=<span style="color: rgba(128, 0, 128, 1)">0</span>;i&lt;ck.length;i++<span style="color: rgba(0, 0, 0, 1)">) { 
// 遍历他
 <span style="color: rgba(0, 0, 255, 1)">if</span>(ck.eq(i).prop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">checked</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)) { 
// 如果他选中了,两个参数是改他的状态
讯享网 </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">娶过来值;加个|分割一下</span> juese += ck.eq(i).val()+<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">|</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; } } juese </span>= juese.substr(<span style="color: rgba(128, 0, 128, 1)">0</span>,juese.length-<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">); 
// 去掉最后的| $.ajax({
 url:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">chuli.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, data:{uid:uid,juese:juese,type:</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">}, type:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">POST</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, dataType:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">TEXT</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, success:function(data){ alert(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">修改成功</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); } }); }) }); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">选中默认角色</span> 
function xuan()
讯享网{ </span><span style="color: rgba(0, 0, 255, 1)">var</span> uid = $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#user</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).val(); $.ajax({ url:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">chuli.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, data:{uid:uid,type:</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">}, type:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">POST</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, dataType:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">TEXT</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, success:function(data) { </span><span style="color: rgba(0, 0, 255, 1)">var</span> juese = data.trim().split(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">|</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">拆分完全都变成代号</span> <span style="color: rgba(0, 0, 255, 1)">var</span> ck = $(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">.ck</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); ck.prop(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">checked</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i=<span style="color: rgba(128, 0, 128, 1)">0</span>;i&lt;ck.length;i++<span style="color: rgba(0, 0, 0, 1)">) { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">便利所有的列表</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(juese.indexOf(ck.eq(i).val())&gt;=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">) { ck.eq(i).prop(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">checked</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">); } } } }); } 
&lt;/script&gt; View Code 处理页面总代码: &lt;?php include (https://www.cnblogs.com/zhangtianle/db.class.php); \(db </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> db(); \)type = $_POST[type]; switch ($type) {
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">: $uid </span>= $_POST[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">zhang</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select jid from qxyhzw WHERE uid='{$uid}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; echo $db</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">strQuery($sql); 
break;
讯享网</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">: $uid </span>= $_POST[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">zhang</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; $juese </span>= $_POST[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">juese</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 首先全部删掉里面的职位</span> $sdel = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">delete from qxyhzw WHERE uid = '{$uid}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; $db</span>-&gt;Query($sdel,<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">拆分取到的字符串</span> $arr= explode(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">|</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,$juese); </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($arr <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $v) { $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">insert into qxyhzw VALUES ('','{$uid}','{$v}')</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; $db</span>-&gt;query($sql,<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">); } echo </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">; 
} 3.登入页面: 显示很简单: &lt;form action=drcl.php method=post&gt;
&lt;p&gt;帐号:&lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text</span><span style="color: rgba(128, 0, 0, 1)">"</span> name=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">zhang</span><span style="color: rgba(128, 0, 0, 1)">"</span>/&gt;&lt;/p&gt; &lt;p&gt;密码:&lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text</span><span style="color: rgba(128, 0, 0, 1)">"</span> name=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mi</span><span style="color: rgba(128, 0, 0, 1)">"</span>/&gt;&lt;/p&gt; &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">submit</span><span style="color: rgba(128, 0, 0, 1)">"</span> value=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">登入</span><span style="color: rgba(128, 0, 0, 1)">"</span>/&gt;&lt;/form&gt;<span style="color: rgba(0, 0, 0, 1)"> 
写登入处理 &lt;?php session_start(); include (https://www.cnblogs.com/zhangtianle/db.class.php); \(db </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> db(); \)zhang = \(_POST[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">zhang</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; \)mi = \(_POST[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mi</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; \)sql = select mi from qxyh WHERE zhang = ‘{\(zhang}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; \)mm = \(db-&gt;strQuery(\)sql)&gt;0; if(\(mm = \)mi && !empty($mi)) {
讯享网$_SESSION[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">zhang</span><span style="color: rgba(128, 0, 0, 1)">"</span>] =<span style="color: rgba(0, 0, 0, 1)"> $zhang; header(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">location:chaxun.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); 
} //else //{ // echo “登入失败”; //} 跳转到主页面,主页面代码: 每个人的主页面都是不一样的 &lt;body&gt; &lt;h1&gt;主页面&lt;/h1&gt; &lt;?php session_start(); include (https://www.cnblogs.com/zhangtianle/db.class.php); \(db </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> db(); \)zhang = ””; if(empty($_SESSION[zhang])) {
header(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">location:qx_dr.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); exit; 
} //登入者用户名
讯享网$zhang = $_SESSION[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">zhang</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]; 
//根据用户名查角色 \(sql = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select jid from qxyhzw WHERE uid = '{\)zhang}’; \(aql </span>= \)db-&gt;Query($sql); //根据角色代号查功能代号 \(attr =<span style="color: rgba(0, 0, 0, 1)"> array(); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">定义一个存放功能代号的数组</span> <span style="color: rgba(0, 0, 255, 1)">foreach</span> (\)aql as \(v) { \)jsid = $v[0];// 角色代号
$ssql = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select rid from qxgnzw WHERE jid='{$jsid}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; $aaql </span>= $db-&gt;<span style="color: rgba(0, 0, 0, 1)">strQuery($ssql); 
//拆分
讯享网$adai = explode(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">|</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,$aaql); </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($adai <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $h) { array_push($attr,$h); } 
} \(attr </span>=<span style="color: rgba(0, 0, 0, 1)"> array_unique(\)attr); //去重 //显示 foreach (\(attr <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> \)k) {
$ql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select * from qxgn WHERE code = '{$k}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; $arr </span>= $db-&gt;<span style="color: rgba(0, 0, 0, 1)">Query($ql); $arr[</span><span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">]; $arr[</span><span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">]; echo </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&lt;p code='{$arr[0][0]}'&gt;{$arr[0][1]}&lt;/p&gt;</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; 
} ?&gt; &lt;/body&gt;
显示:
讯享网用php的用户体验不好,最好还是得用ajax

小讯
上一篇 2025-05-15 09:16
下一篇 2025-06-03 07:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/198034.html