实现不同的用户登录到主界面后显示不同的功能——权限管理

 登陆页面    2.php      

 1 <title>无标题文档</title>
 2 </head>
 3 
 4 <body>
 5 <h1>登陆页面</h1>
 6 
 7 <form action="1.php" method="post">
 8 <div>用户名:<input type="text" name="uid" /></div>
 9 <div>密码:<input type="password" name="pwd" /></div>
10 <input type="submit" value="登录" />
11 </form>
12 </body>
13 </html>

登陆页面的后台处理页面           1.php

 1 <?php
 2 session_start();
 3 $uid = $_POST["uid"];
 4 $pwd = $_POST["pwd"];
 5 
 6 require "./DBDA.class.php";
 7 $db = new DBDA();
 8 $sql = "select pwd from users where uid='{$uid}'";
 9 $mm = $db->strquery($sql);
10 
11 if($mm==$pwd && !empty($pwd))
12 {
13     //在跳转页面前要把用户名存一下,因为这个用户名在主页面3.php里面会使用到的。
14     $_SESSION["uid"] = $uid;
15     header("location:3.php");
16 }
17 else
18 {
19     echo "用户名和密码错误!";
20 }

主界面    3.php

 1 <title>无标题文档</title>
 2 <style type="text/css">
 3 .list{ 100px; height:35px; border:1px solid #0CF;
 4 margin:0px 2px 0px 2px; text-align:center; vertical-align:middle; line-height:35px;}
 5 </style>
 6 </head>
 7 
 8 <body>
 9 <h1>主页面</h1>
10 <!--对于不同的用户登录进来后它所拥有的功能是不一样的,因为通过权限划分了-->
11 <!--在后台可以通过用户名来查到它的角色,再通过它所拥有的角色可以查到它所拥有的功能-->
12 
13 <!--这时候就要考虑下怎样才能让不同的人显示出不同的功能-->
14 <!--还是用div来显示菜单-->
15 <?php
16 //到这个主页面了就说明是登陆过的,首先要知道这个登陆者是谁,可以从session里面取到它的用户名
17 session_start();
18 //从session里面取用户名,如果他没有登陆的话就不让他访问这个页面。
19 //先定义一个uid为空
20 $uid="";
21 //加个if判断一下如果session里面没有存uid的话就让他返回登陆页面让他登录
22 if(empty($_SESSION["uid"]))
23 {
24     header("location:2.php");
25     exit;  //然后退出程序
26 }
27 
28 
29 //如果没有走if的话就说明通过了登录所以下面就要显示主页面里该用户拥有的功能
30 $uid = $_SESSION["uid"];  //这样是取到了当前登陆者的用户名
31 
32 //取到用户名之后,就要根据用户名查角色,根据角色查功能 需要实现这么一个步骤
33 //通过使用数据库无关子查询来实现这个步骤
34 //子查询就是这个叫做外层查询叫做父查询,父查询使用到的条件是子查询的结果
35 
36 require "./DBDA.class.php";
37 $db = new DBDA();
38 
39 //最终我们是要得到功能的名称
40 //因为一个用户可以对应多种角色,每一种角色可以对应多种功能,所以code后面肯定不能写"=",写等于的话
41 //就只能查一个功能名称 所以要用 in
42 
43 $sql = "select * from rules where code in (select distinct ruleid from juesewithrules where jueseid in (select jueseid from userinjuese where userid = '{$uid}'))";
44 //通过这条SQL语句就可以去找到该人员下面所拥有的功能了
45 
46 
47 $arr = $db->query($sql);
48 //这个$arr数组里面就是功能了  也就是这个登陆的人所拥有的功能了
49 //有功能了就遍历一下这个数组然后数组里面只要有一个功能就输出一个div
50 foreach($arr as $v)
51 {
52     //在div里面加一个class等于list来给每一个输出的功能的div添加样式
53     echo "<div code='{$v[0]}' class='list'>{$v[1]}</div>";
54 }
55 
56 ?>
57 </body>
58 </html>
原文地址:https://www.cnblogs.com/shandayuan/p/7296620.html