Home > Article > Backend Development > How to implement rights management function in PHP
Permission management system is mainly used to set different permissions for different users, so that users with different permissions can use different functions after logging in.
First look at the database
##There are a total of 5 tables, users, roles and roleswork 3 One table forms a "w"-shaped relationship with the other two tables, which is also a relatively common permission database method. First, the permissions are set, that is, the management sets different permissions for different users. 1. Administrator page RBAC.php<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>权限管理</title> <script src="bootstrap/js/jquery-1.11.2.min.js"></script> </head> <body> <h2>用户与角色管理</h2> <p><select id="user"> <? "./DBDA.class.php" = = "select * from users" = ->query(,0( "<option value='{[0]}'>{[2]}</option>"?> </select> </p> <br /> <p><? = "select * from roles" = ->query(,0( "<input type='checkbox' class='ck' value='{[0]}'>{[1]}"?> </p> <br /> <input type="button" value="确认" id="btn"/> </body> <script>"#user").change("#btn").click( uid = $("#user"). ck = $(".ck" role = ""; (i=0;i<ck.length;i++ v = ck.eq(i).(ck.eq(i).prop("checked"+= ck.eq(i).val()+"|".:"POST",:"RBbtnchuli.php",:{uid:uid,role:role},:"TEXT",:"修改成功!" uid = $("#user")..:"RBchuli.php",:{uid:uid},:"POST",:"TEXT",: role = data.("|" ck = $(".ck".prop("checked",(i=0;i<ck.length;i++ v = ck.eq(i).(role.indexOf(v)>=0.eq(i).prop("checked",</script> </html>2. Administrator’s processing page RBchuli.php
<?php $uid = $_POST["uid"]; require_once "./DBDA.class.php"; $db = new DBDA(); $sql = "select rolesuid from users_roles where usersuid=' { $uid } '"; echo $db->StrQuery($sql,0);Save role information processing page RBbtnchuli.php
<?php $uid = $_POST["uid"]; $role = $_POST["role"];//字符串 $role = substr($role,0,strlen($role)-1); $arr = explode("|", $role); require_once "./DBDA.class.php"; $db = new DBDA(); //删除 $sdel = "delete from users_roles where usersuid='{$uid}'"; $db->query($sdel); //添加 foreach($arr as $v){ $sql = "insert into users_roles values(0,'{$uid}','{$v}')"; $db->query($sql); }The effect is as shown: The next thing to do is to log in to an account and view Own functions3. User login page RBlogin.php
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="bootstrap/js/jquery-1.11.2.min.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> </head> <style> .title{ margin-left: 600px; margin-top: 150px; } .quanju{ margin-left: 450px; margin-top: -180px; } .name,.pwd{ max-width: 120px; } .yangshi1{ margin-top: 200px; } </style> <body> <form class="form-horizontal" role="form" action="RBloginchuli.php" method="post"> <h3 class="title">用户登录</h3> <p class="quanju"> <p class="form-group yangshi1"> <label for="firstname" class="col-sm-2 control-label">用户名:</label> <p class="col-sm-10"> <input type="text" class="form-control name" name="uid" placeholder="请输入用户名"> </p> </p> <p class="form-group yangshi2"> <label for="lastname" class="col-sm-2 control-label">密码:</label> <p class="col-sm-10"> <input type="text" class="form-control pwd" name="pwd" placeholder="请输入密码"> </p> </p> <p class="form-group"> <p class="col-sm-offset-2 col-sm-10"> <p class="checkbox"> <label> <input type="checkbox"> 保存密码 </label> <label> <input type="checkbox"> 下次自动登录 </label> </p> </p> </p> <p class="form-group"> <p class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-warning" value="登录" onclick="return login()" > 登录 </button> </p> </p> </p> </form> </body> </html>4. Login page processing page RBloginchuli.php
<?phpsession_start(); $uid = $_POST["uid"]; $pwd = $_POST["pwd"]; require_once "./DBDA.class.php"; $db = new DBDA(); $sql = "select pwd from users where uid=' { $uid } '"; $mm = $db->StrQuery($sql,0); if(!empty($pwd) && $pwd==$mm) { $_SESSION["uid"] = $uid; header("location:RBmain.php"); } else { echo "<script>alert('用户名或密码有误!')</script>"; }5. Finally, make the user’s main page RBmain .php8b05045a5be5764f313ed5b9168a17e6
<html> <head> <meta charset="UTF-8"> <title>权限主页面</title> </head> <body> <?php session_start(); if(empty($_SESSION["uid"])) { header("location:RBlogin.php"); exit; } $uid = $_SESSION["uid"]; require_once "./DBDA.class.php"; $db = new DBDA(); //子查询 $sql = "select * from roleswork where code in (select * from roles_roleswork where rolesuid in (select * from users_roles where usersuid=' { $uid } '))"; $arr = $db->query($sql,0); foreach($arr as $v) { echo "<p class='menu'> { $v[1] } </p>"; } ?> </body> </html>The effect is as shown in the figure:
The above is the detailed content of How to implement rights management function in PHP. For more information, please follow other related articles on the PHP Chinese website!