learun开发社区 - 力软.net/java快速开发平台官方论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1670|回复: 2

php权限管理

  [复制链接]

4

主题

6

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2019-4-30 14:47:08 | 显示全部楼层 |阅读模式

首先权限管理肯定是需要登陆的,这里就简单的写一个登陆页面。

简单的登陆页面login.php

  1. <h1>登录页面</h1>
  2. <form action="logincl.php" method="post">
  3. <input type="text" name="uid" />
  4. <input type="password" name="pwd" />
  5. <input type="submit" value="登录" />
  6. </form>
复制代码

登陆处理页面logincl.php

  1. <?php
  2. session_start();
  3. include("../FENGZHUANG/DBDA.class.php");
  4. $db = new DBDA();
  5. $uid = $_POST["uid"];
  6. $pwd = $_POST["pwd"];

  7. $sql="select pwd from users where uid='{$uid}'";
  8. $mm = $db->StrQuery($sql);

  9. if($mm==$pwd && !empty($pwd))
  10. {
  11.     $_SESSION["uid"]=$uid;
  12.     header("location:main.php");
  13. }
复制代码


登陆完成后进入主页面main.php

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. </head>
  7. <body>
  8. <h1>主页面</h1>
  9. <?php
  10. session_start();
  11. include("../FENGZHUANG/DBDA.class.php");
  12. $db = new DBDA();

  13. if(empty($_SESSION["uid"]))
  14. {
  15.     header("location:login.php");
  16.     exit;
  17. }
  18. //登录者用户名
  19. $uid = $_SESSION["uid"];

  20. //根据用户名查角色
  21. $sjs = "select jueseid from userinjuese where userid='{$uid}'";
  22. $ajs = $db->Query($sjs);
  23. //定义一个存放功能代号的数组
  24. $arr = array();
  25. //根据角色代号查功能代号
  26. foreach($ajs as $vjs)
  27. {
  28.         $jsid = $vjs[0]; //角色代号
  29.         $sgn = "select ruleid from juesewithrules where jueseid='{$jsid}'";
  30.         $strgn = $db->StrQuery($sgn);
  31.         $agn = explode("|",$strgn);
  32.         
  33.         foreach($agn as $vgn)
  34.         {
  35.             array_push($arr,$vgn);
  36.         }   
  37. }

  38. //去重,显示
  39. $arr = array_unique($arr);
  40. foreach($arr as $v)
  41. {
  42.     $sql = "select * from rules where code='{$v}'";
  43.     $attr = $db->Query($sql);
  44.    
  45.     $attr[0][0]; $attr[0][1];
  46.    
  47.     echo "<div code='{$attr[0][0]}'>{$attr[0][1]}</div>";
  48. }

  49. ?>

  50. </body>
  51. </html>
复制代码


管理权限界面guanli.php

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. <script src="../FENGZHUANG/jquery-3.1.1.min.js"></script>
  7. </head>

  8. <body>

  9. <h1>用户与角色管理</h1>
  10. <div>
  11. 请选择用户:
  12.     <select id="user">
  13.         <?php
  14.         include("../FENGZHUANG/DBDA.class.php");
  15.         $db = new DBDA();
  16.         $sql = "select * from users";
  17.         $arr = $db->Query($sql);
  18.         foreach($arr as $v)
  19.         {
  20.             echo "<option value='{$v[0]}'>{$v[2]}</option>";
  21.         }
  22.         ?>
  23.     </select>
  24. </div>
  25. <br />
  26. <div>
  27. 请选择角色:
  28. <?php
  29. $sjs = "select * from juese";
  30. $ajs = $db->Query($sjs);
  31. foreach($ajs as $v)
  32. {
  33.     echo "<input type='checkbox' value='{$v[0]}' class='ck' />{$v[1]} ";
  34. }
  35. ?>
  36. </div>
  37. <br />

  38. <input type="button" value="确定" id="btn" />

  39. </body>
  40. <script type="text/javascript">
  41. $(document).ready(function(e) {
  42.     //选中默认角色
  43.     Xuan();
  44.     //当用户选中变化的时候,去选中相应角色
  45.     $("#user").change(function(){
  46.             Xuan();
  47.         })
  48.     //点击确定保存角色信息
  49.     $("#btn").click(function(){
  50.             var uid = $("#user").val();
  51.             var juese = "";
  52.             var ck = $(".ck");
  53.             for(var i=0;i<ck.length;i++)
  54.             {
  55.                 if(ck.eq(i).prop("checked"))
  56.                 {
  57.                     juese += ck.eq(i).val()+"|";
  58.                 }
  59.             }
  60.             juese = juese.substr(0,juese.length-1);
  61.             $.ajax({
  62.                     url:"chuli.php",
  63.                     data:{uid:uid,juese:juese,type:1},
  64.                     type:"POST",
  65.                     dataType:"TEXT",
  66.                     success: function(data){
  67.                             alert("保存成功!");
  68.                         }
  69.                 });
  70.         })
  71. });
  72. //选中默认角色
  73. function Xuan()
  74. {
  75.     var uid = $("#user").val();
  76.     $.ajax({
  77.         url:"chuli.php",
  78.         data:{uid:uid,type:0},
  79.         type:"POST",
  80.         dataType:"TEXT",
  81.         success: function(data){
  82.                 var juese = data.trim().split("|");
  83.                 var ck = $(".ck");
  84.                 ck.prop("checked",false);
  85.                 for(var i=0;i<ck.length;i++)
  86.                 {
  87.                     if(juese.indexOf(ck.eq(i).val())>=0)
  88.                     {
  89.                         ck.eq(i).prop("checked",true);
  90.                     }
  91.                 }
  92.                
  93.             }
  94.         });
  95. }
  96. </script>
  97. </html>
复制代码


处理界面chuli.php

  1. <?php
  2. include("../FENGZHUANG/DBDA.class.php");
  3. $db = new DBDA();

  4. $type = $_POST["type"];

  5. switch($type)
  6. {
  7.     case 0:
  8.         $uid = $_POST["uid"];
  9.         $sql = "select jueseid from userinjuese where userid='{$uid}'";
  10.         echo $db->StrQuery($sql);
  11.         break;
  12.     case 1:
  13.         $uid = $_POST["uid"];
  14.         $juese = $_POST["juese"];
  15.         $sdel = "delete from userinjuese where userid='{$uid}'";//保存权限最简单的办法是先把其删除,再重新添加。
  16.         $db->Query($sdel,0);
  17.         $arr = explode("|",$juese);
  18.         foreach($arr as $v)
  19.         {
  20.             echo $v;
  21.             $sql = "insert into userinjuese values('','{$uid}','{$v}')";
  22.             $db->Query($sql,0);
  23.         }
  24.         echo "OK";
  25.         break;
  26. }
复制代码


数据库截图:

回复

使用道具 举报

0

主题

4

帖子

188

积分

注册会员

Rank: 2

积分
188
发表于 2019-5-21 10:44:09 | 显示全部楼层
感谢分享,学习了。
回复

使用道具 举报

0

主题

11

帖子

244

积分

中级会员

Rank: 3Rank: 3

积分
244
发表于 2019-5-26 04:11:15 | 显示全部楼层
一起交流!对这个话题感兴趣的朋友们
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|learun开发社区 - 力软.net/java快速开发平台官方论坛 ( 沪ICP备14034717号 )

GMT+8, 2021-4-23 08:14 , Processed in 0.187507 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表