ホームページ  >  記事  >  バックエンド開発  >  php の例 - php 人事権限管理 (RBAC) の例 (推奨)

php の例 - php 人事権限管理 (RBAC) の例 (推奨)

微波
微波オリジナル
2017-06-28 13:06:533159ブラウズ

以下のエディターは、PHP 担当者権限管理(RBAC) の例 (推奨) を示します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう

php-人事権限管理(RBAC)

権限管理はVIP機能として利用可能 一般ユーザーとVIPユーザーでは機能が異なります。 5 つの関数が使用されます: ユーザー テーブル、ロール テーブル、関数テーブル、および相互に関連するテーブル: ユーザーとロール テーブル、ロールと関数テーブル

使用する 5 つのテーブルは次のとおりです。

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文から直接書き始めます


3.保存ボタンを確認して権限を変更します

<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/>


4. このようにして、データベース内のユーザーの元の役割を表示する方法、つまり、

ドロップダウン リスト

とチェックボックスの値 メソッドに書き込んでこのメソッドを呼び出すことができます

<input type="button" value="保存" id="baocun" />

5. 各値の処理ページ

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);
            }
          }
        }
       
    })
}
効果は次のとおりです:

6. 最後に、変更した値を保存します。すべて削除して値を選択するメソッドを直接使用できます。保存ボタンにクリック イベントを追加します

7。 効果は次のとおりです:

次のコードはコピー用です。

AJAXはJqueryを参照する必要があることに注意してください

1.guanli.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 .chuli.php

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("保存成功!");
        }
    })
  })
3. 保存された処理ページadd.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. 管理者ページが完了すると、以下がログインページになります

1.基本ページへ login.php

2. ログイン 処理済みページ dlchuli.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. メインページ main.php


Zhang San へのログインを選択して彼の権限を表示すると、その結果は次のようになります:

以上がphp の例 - php 人事権限管理 (RBAC) の例 (推奨)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。