php example-php 인사권한관리(RBAC) 예시(권장)

微波
풀어 주다: 2023-03-11 18:52:02
원래의
3157명이 탐색했습니다.

아래 편집기는 PHP 인력 권한 관리(RBAC)의 예(권장)를 제공합니다. 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집자를 따라가서 살펴보겠습니다

php-RBAC(Personnel Authority Management)

권한 관리는 VIP 기능으로 사용할 수 있습니다. 일반적으로 VIP 사용자의 기능은 다릅니다. 테이블 다섯 가지 함수가 사용됩니다: 사용자 테이블, 역할 테이블, 함수 테이블, 서로 관련된 테이블: 사용자 및 역할 테이블, 역할 및 함수 테이블

제가 사용하는 다섯 개의 테이블은 다음과 같습니다. 다음 :

1. 가장 먼저 작성해야 할 것은 관리자 페이지

1입니다. 이름

<p>
  <select id="user">
  <?php
  require"../DBDA.class.php";
  $db = new DBDA();
  $sql = "select * from users";
  $arr = $db->query($sql,1);
  foreach($arr as $v)
  {
    echo"<option value=&#39;{$v[0]}&#39;>{$v[2]}</option>";
  }
  ?>
  </select>
</p>
로그인 후 복사


2. 위에서 새 객체가 생성되었으므로 역할 이름을 표시할 때 SQL 문에서 직접 작성을 시작합니다

<p>请选择角色:
  <?php
  $sql = "select * from juese";
  $arr = $db->query($sql,1);
  foreach($arr as $v)
  {
    echo "<input type=&#39;checkbox&#39; class=&#39;ck&#39; value=&#39;{$v[0]}&#39;/>{$v[1]}";
  }
  ?>
</p>
<br/>
로그인 후 복사


3. 권한을 수정하려면 저장 버튼을 확인하세요

<input type="button" value="保存" id="baocun" />
로그인 후 복사


4 이런 식으로 데이터베이스에서 사용자의 원래 역할을 표시하는 방법, 즉

드롭다운 목록을 사용하는 방법을 고려하세요. 체크박스의 값 메소드에 작성한 다음 이 메소드를 호출할 수 있습니다

function Xuan()
{
  var uid = $("#user").val();
  $.ajax({
      url:"chuli.php",
      data:{uid:uid},
      type:"POST",
      dataType:"TEXT",
      success: function(data){
          var js = data.trim().split("|");
          var ck = $(".ck");
          ck.prop("checked",false);
          for(var i=0;i<ck.length;i++)
          {
            var v = ck.eq(i).val();
            if(js.indexOf(v)>=0)
            {
              ck.eq(i).prop("checked",true);
            }
          }
        }
       
    })
}
로그인 후 복사

5. 각 값의 처리 페이지

<?php
require"../DBDA.class.php";
$db = new DBDA();
$uid = $_POST["uid"];
$sql = "select jueseid from userinjuese where userid=&#39;{$uid}&#39;";
echo $db->strquery($sql);
로그인 후 복사
로그인 후 복사
효과는 다음과 같습니다.

6. 마지막으로 수정된 값을 저장하고 모두 삭제 및 다시 쓰기 방법을 사용하여 저장 버튼에 클릭 이벤트를 추가할 수 있습니다.

Xuan();
 
$("#user").change(function(){
    Xuan();
  })
$("#baocun").click(function(){
    var uid = $("#user").val();
    var str = "";
    var ck = $(".ck");
    for(var i=0;i<ck.length;i++)
    {
      if(ck.eq(i).prop("checked"))
      {
        str = str + ck.eq(i).val()+",";
      }
    }
   
  str = str.substr(0,str.length-1);
   
  $.ajax({
      url:"add.php",
      data:{uid:uid,js:str},
      type:"POST",
      dataType:"TEXT",
      success: function(data){
          alert("保存成功!");
        }
    })
  })
로그인 후 복사

7.

효과는 다음과 같습니다.

다음 코드는 복사용입니다.

AJAX는 Jquery를 참조해야 합니다

1.guanli.php

<?php
require "../DBDA.class.php";
$db = new DBDA();
$uid = $_POST["uid"];
$js = $_POST["js"];
 
//清空原有角色
$sql = "delete from userinjuese where userid=&#39;{$uid}&#39;";
$db->query($sql);
 
//添加选中的角色
$ajs = explode(",",$js);
 
foreach($ajs as $v)
{
  $sql = "insert into userinjuese values(&#39;&#39;,&#39;{$uid}&#39;,&#39;{$v}&#39;)";
  $db->query($sql);
}
로그인 후 복사
로그인 후 복사

2 .chuli.php





无标题文档


 

用户角色对应

<p> <select id="user"> <?php require"../DBDA.class.php"; $db = new DBDA(); $sql = "select * from users"; $arr = $db->query($sql,1); foreach($arr as $v) { echo"<option value=&#39;{$v[0]}&#39;>{$v[2]}</option>"; } ?> </select> </p>
<p>请选择角色: <?php $sql = "select * from juese"; $arr = $db->query($sql,1); foreach($arr as $v) { echo "<input type=&#39;checkbox&#39; class=&#39;ck&#39; value=&#39;{$v[0]}&#39;/>{$v[1]}"; } ?> </p> <br/> <input type="button" value="保存" id="baocun" />
로그인 후 복사

3. 저장된 처리 페이지 add.php

<?php
require"../DBDA.class.php";
$db = new DBDA();
$uid = $_POST["uid"];
$sql = "select jueseid from userinjuese where userid=&#39;{$uid}&#39;";
echo $db->strquery($sql);
로그인 후 복사
로그인 후 복사

2. 관리자 페이지를 완료한 후 로그인 페이지입니다

1. 기본 페이지 login.php

<?php
require "../DBDA.class.php";
$db = new DBDA();
$uid = $_POST["uid"];
$js = $_POST["js"];
 
//清空原有角色
$sql = "delete from userinjuese where userid=&#39;{$uid}&#39;";
$db->query($sql);
 
//添加选中的角色
$ajs = explode(",",$js);
 
foreach($ajs as $v)
{
  $sql = "insert into userinjuese values(&#39;&#39;,&#39;{$uid}&#39;,&#39;{$v}&#39;)";
  $db->query($sql);
}
로그인 후 복사
로그인 후 복사

2. 로그인 처리된 페이지 dlchuli.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="dlchuli.php" method="post">
<p>用户名:<input type="text" name="uid" /></p>
<p>密码:  <input type="password" name="pwd" /></p>
<input type="submit" value="登录" />
</form>
</body>
</html>
로그인 후 복사


3.

Zhang San에 로그인하여 권한을 표시하도록 선택하면 효과는 다음과 같습니다.

위 내용은 php example-php 인사권한관리(RBAC) 예시(권장)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!