Home  >  Article  >  Backend Development  >  Detailed example of how to judge user operation permissions through Session

Detailed example of how to judge user operation permissions through Session

伊谢尔伦
伊谢尔伦Original
2017-04-28 11:43:526081browse

In most website development processes, it is more practical to divide the permissions of administrators and ordinary users to operate the website. Let's give a comprehensive explanation through a specific code example. To give friends a more intuitive experience, you can combine the knowledge you have learned previously to improve your code and ideas.

First, verify the user's authority to operate the website through the user information submitted on the user login page.

The specific development steps are as follows:

(1) Design a login page, add a form, use POST method to transfer parameters, the data processing page pointed to by action is default.php , add a username text box and name it user, add a password field text box and name it pwd, and perform a submission jump through the submit button. The main code is as follows.

<!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  密  码:111 </span>
              <br><br>
              <span>普通用户: tom  密  码:000 </span>
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
</form>
</body>
</html>

(2) Under the click event of the "Submit" button, call the custom function check() to verify whether the form element is empty. The javascript code is used here for verification. Please supplement your knowledge about javascript by yourself. The custom function check() code is as follows:

<script type="text/javascript">
   function check(form){
     if(form.uesr.value == ""){
       alert("请输入用户名");
     }
     if(form.pwd.value == ""){
       alert("请输入密码");
     }
     form.submit();
   }
 </script>

(3) Submit the form elements to the data processing page default.php. First use the session_start() function to initialize the session variable, then use the POST method to receive the value of the form element, and assign the obtained user name and password to the session variable respectively. The code is as follows:

<?php
 session_start();
 $_SESSION[&#39;user&#39;]=$_POST[&#39;user&#39;];
 $_SESSION[&#39;pwd&#39;]=$_POST[&#39;pwd&#39;];
?>

(4) To prevent Other users illegally log in to the system and use if conditional statements to judge the value of the session variable. The knowledge of javascript is continued here. The code is as follows:

<?php
 if($_SESSION[&#39;user&#39;]==""){
   echo &#39;<script type="text/javascript">alert("请使用正确途径登录"); history.back();</script>&#39;;
 }
?>

(5) In the data processing page default.php Add the following navigation bar code to determine the level of the current user to see whether the logged-in user is an administrator or an ordinary user, and then the differentiated output is displayed:

<table align="center" cellpadding="0" cellspacing="0">
 <tr align="center" valign="middle">
   <td style="width: 140px; color: red;">当前用户:
     <!-- 输出当前登录用户级别-->
     <?php
       if($_SESSION[&#39;user&#39;]=="admin"&&$_SESSION[&#39;pwd&#39;]=="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[&#39;user&#39;]=="admin"&& $_SESSION[&#39;pwd&#39;]=="111") {   //如果当前用户是管理员
      //如果当前用户是管理员 则输出 用户管理
      echo   &#39;<td width="100">|<a href="default.php">用户管理</a><td>&#39;;
     }
   ?>
   <td width="100">|<a href="safe.php">注销用户</a><td>
 </tr>
</table>

(6) In the default.php page above Add the "Logout User" hyperlink page safe.php, and write the following code in safe.php to delete the user Session and return to the login page:

<?php
 session_start();                  //初始化 session
 unset($_SESSION[&#39;user&#39;]);            //删除用户名会话变量
 unset($_SESSION[&#39;pwd&#39;]);             //删除密码会话变量
 session_destroy();                 //删除当前所有会话变量
 header("location:index.php");         //跳转到用户登录页
?>

(7) Run this example on the website Enter your username and password on the user login page, log in to the website as a super user or log in as an ordinary user and run it.

php Chinese website learning topic: php session (including pictures, texts, videos, cases)

The above is the detailed content of Detailed example of how to judge user operation permissions through Session. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn