• 如何通过Session对用户操作权限进行判断的实例详解


    在大多数的网站开发过程中,更具实际的需要,需要划分管理员和普通用户对操作网站的权限。下面通过一个具体的代码实例进行一下全面的讲解。给朋友们更直观的感受,可以综合前面学过的知识,让自己的代码和思路有一定的提升。

     直线电机生产厂家

    首先通过用户登录页面提交的用户信息来验证用户操作网站的权限。

    具体开发步骤如下所示:

    (1) 设计一个登陆的页面,添加一个form表单,使用POST方式进行参数传递, action 指向的数据处理页面为 default.php , 添加一个用户名文本框并命名为 user,添加一个密码域文本框并命名为 pwd ,通过submit按钮进行提交跳转,其主要的代码如下所示。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    <!DOCTYPE html>

    <html lang="en">

    <head>

      <meta charset="UTF-8">

      <title>Title</title>

      <script type="text/javascript">

     function check(form){

     if(form.uesr.value == ""){

     alert("请输入用户名");

          }

     if(form.pwd.value == ""){

     alert("请输入密码");

          }

     form.submit();

        }

      </script>

    </head>

    <body>

    <form name="form1" method="post" action="default.php">

      <table width="520" height="390" border="0" cellpadding="0" cellspacing="0">

        <tr>

          <td valign="top">

            <table width="520" border="0" cellspacing="0" cellpadding="0">

              <tr>

                <td height="24" align="right">用户名:</td>

                <td height="24" align="left">

                  <input name="user" type="text" id="user" size="20">

                </td>

              </tr>

              <tr>

                <td height="24" align="right">密 码:</td>

                <td height="24" align="left">

                  <input name="pwd" type="password" id="pwd" size="20">

                </td>

              </tr>

              <tr align="center">

                <td height="24" colspan="2">

                  <input name="submit" type="submit" value="提交" onclick="return check(form);">

                  <input type="reset" name="reset" value="重置">

                </td>

              </tr>

              <tr>

                <td height="76">

                  <span>超级用户: admin &nbsp;密  码:111 </span>

                  <br><br>

                  <span>普通用户: tom &nbsp;密  码:000 </span>

                </td>

              </tr>

            </table>

          </td>

        </tr>

      </table>

    </form>

    </body>

    </html>

    (2)在 “提交” 按钮的单击事件下,调用自定义函数 check() 来验证表单元素是否为空。这里使用了javascript代码进行验证,有关javascript的知识请自行补脑。自定义函数 check() 代码如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    <script type="text/javascript">

       function check(form){

         if(form.uesr.value == ""){

           alert("请输入用户名");

         }

         if(form.pwd.value == ""){

           alert("请输入密码");

         }

         form.submit();

       }

     </script>

    (3) 提交表单元素到数据处理页 default.php。首先使用 session_start() 函数初始化 session变量,在使用 POST方法 接收表单元素的值,将获取的用户名和密码分别赋值给 session变量,其代码如下所示:

    1

    2

    3

    4

    5

    <?php

     session_start();

     $_SESSION['user']=$_POST['user'];

     $_SESSION['pwd']=$_POST['pwd'];

    ?>

    (4)为防止其他用户非法登录本系统,使用if 条件语句对 session变量的值进行判断,这里继续使用了javascript的知识,其代码如下所示:

    1

    2

    3

    4

    5

    <?php

     if($_SESSION['user']==""){

       echo '<script type="text/javascript">alert("请使用正确途径登录"); history.back();</script>';

     }

    ?>

    (5)在数据处理页面 default.php 中添加如下的导航栏代码,判断当前用户的级别,看已登录的用户是管理员还是普通用户,然后区别的输出显示:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    <table align="center" cellpadding="0" cellspacing="0">

     <tr align="center" valign="middle">

       <td style=" 140px; color: red;">当前用户:

         <!-- 输出当前登录用户级别-->

         <?php

           if($_SESSION['user']=="admin"&&$_SESSION['pwd']=="111"){

             echo "管理员";

           }else{

             echo "普通用户";

           }

         ?>

       </td>

       <td width="70"><a href="default.php">首页</a><td>

       <td width="70">|<a href="default.php">文章</a><td>

       <td width="70">|<a href="default.php">相册</a><td>

       <td width="100">|<a href="default.php">修改密码</a><td>

       <?php

         if($_SESSION['user']=="admin"&& $_SESSION['pwd']=="111") {   //如果当前用户是管理员

          //如果当前用户是管理员 则输出 用户管理

          echo   '<td width="100">|<a href="default.php">用户管理</a><td>';

         }

       ?>

       <td width="100">|<a href="safe.php">注销用户</a><td>

     </tr>

    </table>

    (6)在上面的 default.php 页面中添加 “注销用户”的超链接页面 safe.php,并在 safe.php 中写入如下的代码,进行删除用户 Session,返回登录页面:

    1

    2

    3

    4

    5

    6

    7

    <?php

     session_start();                  //初始化 session

     unset($_SESSION['user']);            //删除用户名会话变量

     unset($_SESSION['pwd']);             //删除密码会话变量

     session_destroy();                 //删除当前所有会话变量

     header("location:index.php");         //跳转到用户登录页

    ?>

    (7) 运行这个实例,在网站用户登录页面输入用户名和密码 ,分别以超级用户的身份登录网站或者使用普通用户身份登录网站运行一下。https://www.furuihua.cn/product/410.html

  • 相关阅读:
    洛谷 [P1024]一元三次方程求解
    洛谷 [P1426] 通往奥格瑞玛的道路
    洛谷 [p1439] 最长公共子序列 (NlogN)
    洛谷 [P1182] 数列分段
    洛谷 [P1314] 聪明的质检员(NOIP2011 D2T2)
    洛谷 [P1280] 尼克的任务
    洛谷 [P1801] 黑匣子
    洛谷 [p1196] 银河英雄传说
    洛谷 [P2024] 食物链
    洛谷 [P1198] 最大数
  • 原文地址:https://www.cnblogs.com/furuihua/p/12206095.html
Copyright © 2020-2023  润新知