最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2007年04月28日 00:00:00   作者:  
權(quán)限設(shè)計

大概有這幾種模式:
用戶+組+角色+權(quán)限
用戶+組+權(quán)限
用戶+角色+權(quán)限
用戶+權(quán)限


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

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

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

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

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

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

相關(guān)文章

  • php正則判斷是否為合法身份證號的方法

    php正則判斷是否為合法身份證號的方法

    這篇文章主要介紹了php正則判斷是否為合法身份證號的方法,涉及php針對數(shù)字的正則及字符串操作相關(guān)技巧,需要的朋友可以參考下
    2017-03-03
  • 原生php實現(xiàn)excel文件讀寫的方法分析

    原生php實現(xiàn)excel文件讀寫的方法分析

    這篇文章主要介紹了原生php實現(xiàn)excel文件讀寫的方法,結(jié)合實例形式分析了采用原生php針對Excel進行讀寫操作的相關(guān)實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2018-04-04
  • PHP 應(yīng)用程序的安全 -- 不能違反的四條安全規(guī)則

    PHP 應(yīng)用程序的安全 -- 不能違反的四條安全規(guī)則

    PHP 應(yīng)用程序的安全 -- 不能違反的四條安全規(guī)則...
    2006-11-11
  • php-fpm超時時間設(shè)置request_terminate_timeout資源問題分析

    php-fpm超時時間設(shè)置request_terminate_timeout資源問題分析

    之前發(fā)現(xiàn)一個php配置之后關(guān)于返回500和502的問題,今天看到一個兄弟寫的非常不錯,記錄一下
    2019-09-09
  • 5種PHP創(chuàng)建數(shù)組的實例代碼分享

    5種PHP創(chuàng)建數(shù)組的實例代碼分享

    在本文將數(shù)組的各種創(chuàng)建方式用PHP實例代碼的方式分享給大家,感興趣的朋友可以了解下
    2014-01-01
  • PHP Session變量不能傳送到下一頁的解決方法

    PHP Session變量不能傳送到下一頁的解決方法

    在PHP中使用過SESSION的朋友可能會碰到這么一個問題,SESSION變量不能跨頁傳遞。這令我苦惱了好些日子,最終通過查資料思考并解決了這個問題。
    2009-11-11
  • PHP使用標準庫spl實現(xiàn)的觀察者模式示例

    PHP使用標準庫spl實現(xiàn)的觀察者模式示例

    這篇文章主要介紹了PHP使用標準庫spl實現(xiàn)的觀察者模式,結(jié)合實例形式分析了php基于spl標準庫的觀察者模式相關(guān)實現(xiàn)與使用操作技巧,需要的朋友可以參考下
    2018-08-08
  • 比較全的PHP 會話(session 時間設(shè)定)使用入門代碼

    比較全的PHP 會話(session 時間設(shè)定)使用入門代碼

    由于 Session 是以文本文件形式存儲在服務(wù)器端的,所以不怕客戶端修改 Session 內(nèi)容。實際上在服務(wù)器端的 Session 文件,PHP 自動修改 Session 文件的權(quán)限,只保留了系統(tǒng)讀和寫權(quán)限,而且不能通過 ftp 修改,所以安全得多。
    2008-06-06
  • 最新評論

    无锡市| 吉首市| 大邑县| 吉安市| 象州县| 都匀市| 都江堰市| 中西区| 珲春市| 樟树市| 肇庆市| 衡阳县| 安福县| 闽清县| 额尔古纳市| 东莞市| 遂平县| 乡宁县| 平泉县| 托克托县| 中超| 湄潭县| 龙泉市| 策勒县| 年辖:市辖区| 康马县| 德化县| 苏尼特右旗| 体育| 永安市| 铜川市| 佳木斯市| 扬中市| 化州市| 湘西| 遂宁市| 介休市| 临清市| 庆阳市| 宜春市| 宜宾县|