欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php下的權限算法的實現(xiàn)

 更新時間:2007年04月28日 00:00:00   作者:  
權限設計

大概有這幾種模式:
用戶+組+角色+權限
用戶+組+權限
用戶+角色+權限
用戶+權限


最近看了別人的設計方法,大多以“整數(shù)”來表示權限值,如添加、瀏覽、刪除和修改,分別用1、2、4、8這幾個整數(shù)來代替,不過,各人的做法有所不同,舉例如下:

1.用2的n次冪組成權限值的集合,如1、2、4、8、16...,某用戶的權限值為其子集中的整數(shù)之和,如 7=1+2+4,5=1+4。如果要從數(shù)據(jù)庫檢索包含某幾種權限的用戶,則先把這幾種權限值相加,假設和為k,然后select * from table where 1 and 用戶權限值 = ’k’;如果要判斷某用戶有哪些權限,則取出其權限值k,分別用k&1,K&2,K&4,k&16...,如果為真,則表示有值等于“&”右邊整數(shù)的權限,例如,如果k&4為真,則此用戶有權限表中值等于4的權限;

2.用質數(shù)2、3、5、7、11...組成權限集合,某用戶的權限為其子集中各整數(shù)的乘積,如 210 = 2*3*5*7,我覺得這種方法很有趣,難點在于如何分解質因數(shù);但我有些不認同原作者的提法,他認為權限之間可能存在包含關系,如某用戶有刪除權限,則其一定有瀏覽權限,要不然就沒法刪除,事實確實是這樣,不過我認為這樣太復雜了,容易出錯,我覺得權限最好是“原子”的,互不干擾,也就是說某用戶有刪除權限而沒瀏覽權限則其無法進行刪除操作,因為他看不到東西,解決這個矛盾的關鍵是在給用戶賦權時,把瀏覽權限也賦給他;

3.不用整數(shù),而是用“向量表”方法(也許我說的不一定對),把所有可能的權限按一定的順序排列,如添加、瀏覽、修改、刪除...,用戶的權限值為固定100位長度的字符串,如100010100001....01,從左起每一位對應一種操作權限,如果有這種權限,則此位的值為1,反之,則為0,作者之所以把用戶權限值固定為100位,我想是考慮到升級問題,但我認為這還不夠科學,我認為用戶的權限值長度應小于權限個數(shù),舉例如下:
權限排列表:添加、瀏覽、修改、刪除,用戶A有添加和瀏覽的的權限,則其權限值為11,用戶B有瀏覽和修改的權限則其權限值為011,用戶C有瀏覽和刪除的權限則其權限值為0101,這樣設計的好處為:當權限表中增加別的權限時,不會影響用戶表或角色表;

4.我曾經(jīng)的做法,在后臺管理中把權限分為兩大類:欄目權限和操作權限,每個欄目對應一個目錄,操作權限細分為瀏覽、添加、修改和刪除,用戶進入系統(tǒng)后首先判斷有沒有欄目權限,然后判斷有沒有操作權限,判斷欄目權限相對簡單一些,首先獲取訪問頁面的路徑path,然后分解出目錄,對應用戶擁有的目錄權限,如果此目錄包含在用戶有權管理的目錄數(shù)組中(從數(shù)據(jù)庫取出),則其有進入此目錄的權限,否則,沒有,然而,在判斷操作權限好象有些麻煩,但突然想到添加、瀏覽、修改和刪除與我的文件命名規(guī)則是基本是對應的,但有點不同的是,我把添加和刪除的功能合并在一個文件中了,例如文件名為proAddEdit.php,幸好意識到修改文件時多了個傳遞參數(shù)id,于是,我用正則解決了這個問題,今天看來,這種方法似乎過時了,因為不適應面向對象的思想和用框架體系來開發(fā)系統(tǒng)!

以上是個人粗淺的認識和描述,若有錯誤,請各位指正,希望高人給些意見! 

相關文章

  • php gd等比例縮放壓縮圖片函數(shù)

    php gd等比例縮放壓縮圖片函數(shù)

    這篇文章主要為大家詳細介紹了php gd等比例縮放壓縮圖片函數(shù),文章末尾為大家分享了php and gd 函數(shù)參考表,感興趣的小伙伴們可以參考一下
    2016-06-06
  • PHP7.1實現(xiàn)的AES與RSA加密操作示例

    PHP7.1實現(xiàn)的AES與RSA加密操作示例

    這篇文章主要介紹了PHP7.1實現(xiàn)的AES與RSA加密操作,結合實例形式分析了php7.1環(huán)境下AES與RSA加密、解密操作相關實現(xiàn)與使用技巧,需要的朋友可以參考下
    2018-06-06
  • php檢查日期函數(shù)checkdate用法實例

    php檢查日期函數(shù)checkdate用法實例

    這篇文章主要介紹了php檢查日期函數(shù)checkdate用法,實例分析了php中checkdate函數(shù)的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • php GeoIP的使用教程

    php GeoIP的使用教程

    GeoIP介紹:什么是GepIP ?所謂GeoIP,就是通過來訪者的IP, 定位他的經(jīng)緯度,國家/地區(qū),省市,甚至街道等位置信息。
    2011-03-03
  • ThinkPHP3.2.3所有的單字母方法整理總結

    ThinkPHP3.2.3所有的單字母方法整理總結

    ThinkPHP3.2.3在以前是一款廣受歡迎的PHP開發(fā)框架,現(xiàn)在雖然除了版本5和6,但仍有不少項目使用ThinkPHP3。ThinkPHP3中的字母函數(shù)是以字母開頭的一類函數(shù),其作用是非常豐富的,包括字符串處理、文件處理、日期時間處理以及HTTP協(xié)議處理等。
    2023-07-07
  • php使用指定字符列表生成隨機字符串的方法

    php使用指定字符列表生成隨機字符串的方法

    這篇文章主要介紹了php使用指定字符列表生成隨機字符串的方法,涉及php中rand及substr等函數(shù)操作字符串的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-04-04
  • 比較discuz和ecshop的截取字符串函數(shù)php版

    比較discuz和ecshop的截取字符串函數(shù)php版

    網(wǎng)上看到一篇文章 discuz和ecshop截取字符串的兩個函數(shù),比較了一下兩個版本的函數(shù),都各有局限,只能在特定的前提下使用,但是學習一下有利于拓寬思路,了解PHP的擴展功能
    2012-09-09
  • PHP回調函數(shù)概念與用法實例分析

    PHP回調函數(shù)概念與用法實例分析

    這篇文章主要介紹了PHP回調函數(shù)概念與用法,簡單介紹了回調函數(shù)的概念、原理,并結合實例形式分析了回調函數(shù)的相關使用技巧,需要的朋友可以參考下
    2017-11-11
  • 屏蔽PHP默認設置中的Notice警告的方法

    屏蔽PHP默認設置中的Notice警告的方法

    很多時候其實寫出來的代碼的錯誤可以忽略或者根本就不是錯誤,PHP還是會顯示Notice警告,well接下來我們就來介紹一下屏蔽PHP默認設置中的Notice警告的方法
    2016-05-05
  • php創(chuàng)建多級目錄與級聯(lián)刪除文件的方法示例

    php創(chuàng)建多級目錄與級聯(lián)刪除文件的方法示例

    這篇文章主要介紹了php創(chuàng)建多級目錄與級聯(lián)刪除文件的方法,結合實例形式分析了php使用mkdir創(chuàng)建多級目錄與unlink結合rmdir遞歸刪除多級目錄相關操作技巧,需要的朋友可以參考下
    2019-09-09

最新評論