아래 편집기는 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='{$v[0]}'>{$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='checkbox' class='ck' value='{$v[0]}'/>{$v[1]}";
}
?>
</p>
<br/>
3. 권한을 수정하려면 저장 버튼을 확인하세요<input type="button" value="保存" id="baocun" />
드롭다운 목록을 사용하는 방법을 고려하세요. 체크박스의 값 메소드에 작성한 다음 이 메소드를 호출할 수 있습니다
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); } } } }) }
<?php
require"../DBDA.class.php";
$db = new DBDA();
$uid = $_POST["uid"];
$sql = "select jueseid from userinjuese where userid='{$uid}'";
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("保存成功!");
}
})
})
효과는 다음과 같습니다.
다음 코드는 복사용입니다.
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='{$uid}'"; $db->query($sql); //添加选中的角色 $ajs = explode(",",$js); foreach($ajs as $v) { $sql = "insert into userinjuese values('','{$uid}','{$v}')"; $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='{$v[0]}'>{$v[2]}</option>"; } ?> </select> </p>
<p>请选择角色: <?php $sql = "select * from juese"; $arr = $db->query($sql,1); foreach($arr as $v) { echo "<input type='checkbox' class='ck' value='{$v[0]}'/>{$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='{$uid}'"; 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='{$uid}'"; $db->query($sql); //添加选中的角色 $ajs = explode(",",$js); foreach($ajs as $v) { $sql = "insert into userinjuese values('','{$uid}','{$v}')"; $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>
Zhang San에 로그인하여 권한을 표시하도록 선택하면 효과는 다음과 같습니다.
위 내용은 php example-php 인사권한관리(RBAC) 예시(권장)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!