Dans notre développement PHP actuel, il est très important de gérer les autorisations des utilisateurs. Pour définir différentes autorisations pour différents utilisateurs, nous utiliserons inévitablement la base de données mysql. Dans cet article, nous expliquerons comment fonctionne PHP en combinant mysql pour implémenter la gestion des autorisations.
Aujourd'hui, nous implémentons principalement un système de gestion des autorisations. Il s'agit principalement de définir différentes autorisations pour différents utilisateurs, afin que les utilisateurs avec des autorisations différentes puissent utiliser différentes fonctions après s'être connectés. Tout d'abord, jetons un coup d'œil à la base de données
Il y a un total de 5 tables. Les 3 tables qx_user, qx_rules et qx_juese forment une relation en forme de "w" avec les 2 autres tables. C'est également une méthode de base de données d'autorisations courante. Tout d'abord, définissez les autorisations. la direction définit différentes autorisations pour différents utilisateurs.
guanli.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script src="../../dist/js/jquery-1.11.2.min.js"></script> </head> <body> <h1>用户与角色管理</h1> <p> 请选择用户: <select id="user"> <?php include("../../fengzhuang/DBDA.class.php"); $db = new DBDA(); $sql = "select * from qx_user"; $arr = $db->Query($sql); foreach($arr as $v) { echo "<option value='{$v[0]}'>{$v[2]}</option>"; } ?> </select> </p> <br /> <p> 请选择角色: <?php $sjs = "select * from qx_juese"; $ajs = $db->Query($sjs); foreach($ajs as $v) { echo "<input type='checkbox' value='{$v[0]}' class='ck' />{$v[1]} "; } ?> </p> <br /> <input type="button" value="确定" id="btn" /> </body> <script type="text/javascript"> $(document).ready(function(e) { //选中默认角色 Xuan(); //当用户选中变化的时候,去选中相应角色 $("#user").change(function(){ Xuan(); }) //点击确定保存角色信息 $("#btn").click(function(){ var uid = $("#user").val(); var juese = ""; var ck = $(".ck"); for(var i=0;i<ck.length;i++) { if(ck.eq(i).prop("checked")) { juese += ck.eq(i).val()+"|"; } } juese = juese.substr(0,juese.length-1); $.ajax({ url:"chuli.php", data:{uid:uid,juese:juese,type:1}, type:"POST", dataType:"TEXT", success: function(data){ alert("保存成功!"); } }); }) }); //选中默认角色 function Xuan() { var uid = $("#user").val(); $.ajax({ url:"chuli.php", data:{uid:uid,type:0}, type:"POST", dataType:"TEXT", success: function(data){ var juese = data.trim().split("|"); var ck = $(".ck"); ck.prop("checked",false); for(var i=0;i<ck.length;i++) { if(juese.indexOf(ck.eq(i).val())>=0) { ck.eq(i).prop("checked",true); } } } }); } </script> </html>
chuli.php
<?php include("../../fengzhuang/DBDA.class.php"); $db = new DBDA(); $type = $_POST["type"]; switch($type) { case 0: $uid = $_POST["uid"]; $sql = "select jueseid from qx_uij where useid='{$uid}'"; echo $db->StrQuery($sql); break; case 1: $uid = $_POST["uid"]; $juese = $_POST["juese"]; $sdel = "delete from qx_uij where useid='{$uid}'"; $db->Query($sdel,0); $arr = explode("|",$juese); foreach($arr as $v) { echo $v; $sql = "insert into qx_uij values('','{$uid}','{$v}')"; $db->Query($sql,0); } echo "OK"; break; }
L'effet obtenu est celui indiqué dans la figure :
Je peux choisir quel utilisateur définir les autorisations et donnez-lui un Le rôle peut être un ou plusieurs. Cliquez sur OK pour accorder l'autorisation dans la base de données.
Par exemple : Ma Qi elle-même a deux rôles : la réception et le marché
Maintenant, supprimez la réception et ajoutez les finances
Ensuite, voyons si la base de données a été ajoutée
L'élément Ma Qi a été modifié, j003 et j004 sont les rôles marketing et financier .
La prochaine chose à faire est de vous connecter à un compte et de consulter vos fonctions
login.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <h1>登录页面</h1> <form action="logincl.php" method="post"> <input type="text" name="uid" /> <input type="password" name="pwd" /> <input type="submit" value="登录" /> </form> </body> </html>
logincl.php
<?php session_start(); include("../../fengzhuang/DBDA.class.php"); $db = new DBDA(); $uid = $_POST["uid"]; $pwd = $_POST["pwd"]; $sql="select pwd from qx_user where uid='{$uid}'"; $mm = $db->StrQuery($sql); if($mm==$pwd && !empty($pwd)) { $_SESSION["uid"]=$uid; header("location:main.php"); }
main.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <h1>主页面</h1> <?php session_start(); include("../../fengzhuang/DBDA.class.php"); $db = new DBDA(); if(empty($_SESSION["uid"])) { header("location:login.php"); exit; } //登录者用户名 $uid = $_SESSION["uid"]; //根据用户名查角色 $sjs = "select jueseid from qx_uij where useid='{$uid}'"; $ajs = $db->Query($sjs); //定义一个存放功能代号的数组 $arr = array(); //根据角色代号查功能代号 foreach($ajs as $vjs) { $jsid = $vjs[0]; //角色代号 $sgn = "select ruleid from qx_jwr where jueseid='{$jsid}'"; $strgn = $db->StrQuery($sgn); $agn = explode("|",$strgn); foreach($agn as $vgn) { array_push($arr,$vgn); } } //去重,显示 $arr = array_unique($arr); foreach($arr as $v) { $sql = "select * from qx_rules where code='{$v}'"; $attr = $db->Query($sql); $attr[0][0]; $attr[0][1]; echo "<p code='{$attr[0][0]}'>{$attr[0][1]}</p>"; } ?> </body> </html>
L'effet terminé est comme indiqué sur l'image :
Il montre que la fonction de John Doe est :
Vérifiez si la base de données est la même :
Trouvé Le résultat est le même. De cette façon, la gestion des autorisations est terminée. Vous pouvez bien regarder et pratiquer, cela nous sera d’une grande aide dans notre développement futur !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!