PHP與RBAC設計思路講解與源碼

      網友投稿 813 2022-05-30

      在說權限管理前,應該先知道權限管理要有哪些功能:

      PHP與RBAC設計思路講解與源碼

      (1)、用戶只能訪問,指定的控制器,指定的方法

      (2)、用戶可以存在于多個用戶組里

      (3)、用戶組可以選擇,指定的控制器,指定的方法

      (4)、可以添加控制器和方法

      RBAC(Role-Based Access Control,基于角色的訪問控制),就是用戶通過角色與權限進行關聯。簡單地說,一個用戶擁有若干角色,每一個角色擁有若干權限。這樣,就構造成“用戶-角色-權限”的授權模型。在這種模型中,用戶與角色之間,角色與權限之間,一般者是多對多的關系。

      1.數據庫的設計

      寫五張表,首先:用戶表、角色表、功能表:

      連接表的表..再來就是角色功能表與用戶角色表:

      2.管理員的管理頁面,

      (1).分別顯示用戶名和角色名

      (2).根據下拉用戶名的變化,更改相應復選框中的角色

      (3).修改用戶角色時,先要把用戶對應角色表,這個用戶所有的信息刪除,再把取到的用戶名和角色代號新添加。

      利用下拉列表:嵌入php查詢并遍歷出來,以下拉列表的方式顯示出來

      選擇角色,用多選框:

      請選擇角色 Query($sjs); foreach ($ajs as $v) { echo "{$v[1]} "; } ?>

      圖:

      當用戶發生變化的時候,相應的角色也相應變化,并且改變人員的角色信息,添加保存,添加保存的基本思路是先把數據庫里人員對應的角色信息全部刪除,然后再取到選中的部分,添加到數據庫。

      先來讓他選中默認角色:

      來寫他的處理頁面:

      strQuery($sql); break; }

      我們看下最后結果,登錄成功就會進入主頁,登錄失敗會提示錯誤

      再來,保存按鈕:

      處理頁面:

      Query($sdel,0); //拆分取到的字符串 $arr= explode("|",$juese); foreach ($arr as $v) { $sql = "insert into qxyhzw VALUES ('','{$uid}','{$v}')"; $db->query($sql,0); } echo "ok"; break; }

      看效果:

      默認選中角色;

      更改以后選擇保存:

      管理頁面總代碼:

      無標題文檔

      處理頁面總代碼:

      strQuery($sql); break; case 1: $uid = $_POST["zhang"]; $juese = $_POST["juese"]; // 首先全部刪掉里面的職位 $sdel = "delete from qxyhzw WHERE uid = '{$uid}'"; $db->Query($sdel,0); //拆分取到的字符串 $arr= explode("|",$juese); foreach ($arr as $v) { $sql = "insert into qxyhzw VALUES ('','{$uid}','{$v}')"; $db->query($sql,0); } echo "ok"; break; }

      3.登入頁面:

      顯示很簡單:

      帳號:
      密碼:

      寫登入處理

      strQuery($sql)>0; if($mm = $mi && !empty($mi)) { $_SESSION["zhang"] = $zhang; header("location:chaxun.php"); } //else //{ // echo "登入失敗"; //}

      跳轉到主頁面,主頁面代碼:

      每個人的主頁面都是不一樣的

      主頁面

      Query($sql); //根據角色代號查功能代號 $attr = array(); //定義一個存放功能代號的數組 foreach ($aql as $v) { $jsid = $v[0];// 角色代號 $ssql = "select rid from qxgnzw WHERE jid='{$jsid}'"; $aaql = $db->strQuery($ssql); //拆分 $adai = explode("|",$aaql); foreach ($adai as $h) { array_push($attr,$h); } } $attr = array_unique($attr); //去重 //顯示 foreach ($attr as $k) { $ql = "select * from qxgn WHERE code = '{$k}'"; $arr = $db->Query($ql); $arr[0][0]; $arr[0][1]; echo "
      {$arr[0][1]}
      "; } ?>

      用php的用戶體驗不好,最好還是得用ajax

      PHP

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:vagrant配置端口轉發
      下一篇:公司有著 30 多年經驗的程序員被辭退了
      相關文章
      亚洲av无码一区二区三区不卡| 国产亚洲人成在线播放| 一本久久综合亚洲鲁鲁五月天| 国产精品亚洲二区在线| 亚洲综合无码无在线观看| 亚洲一级毛片免费看| 亚洲成电影在线观看青青| 亚洲日本国产精华液| 亚洲精品动漫在线| 亚洲成人午夜电影| 亚洲神级电影国语版| 亚洲成年人电影在线观看| 亚洲免费观看网站| 久久精品国产亚洲av麻豆图片| 亚洲av日韩av无码av| 精品久久亚洲中文无码| 亚洲AV色吊丝无码| 亚洲综合久久精品无码色欲 | 亚洲 欧洲 日韩 综合在线| 亚洲人成网男女大片在线播放| 亚洲欧洲精品久久| 亚洲avav天堂av在线网爱情| 亚洲乱码卡一卡二卡三| 亚洲国产系列一区二区三区| 国产成人精品日本亚洲专| 亚洲日本va一区二区三区| 亚洲欧洲国产成人精品| 亚洲手机中文字幕| 亚洲熟女综合一区二区三区| 国产成人精品久久亚洲高清不卡| 亚洲Av无码乱码在线znlu| 久久综合久久综合亚洲| 午夜亚洲WWW湿好爽| 亚洲 欧洲 视频 伦小说| 亚洲国产精品18久久久久久| 怡红院亚洲红怡院在线观看| 亚洲色偷偷狠狠综合网| 国产精品亚洲A∨天堂不卡| 亚洲最大成人网色| 亚洲人成依人成综合网| 亚洲特级aaaaaa毛片|