国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP巧妙利用位運(yùn)算實(shí)現(xiàn)網(wǎng)站權(quán)限管理的方法

2024-05-04 23:55:47
字體:
供稿:網(wǎng)友

首先我們先定義4個(gè)常量來設(shè)定四種權(quán)限:

=====================================

define(ADD,1);//增加數(shù)據(jù)庫記錄的權(quán)限
define(UPD,2);//修改數(shù)據(jù)庫記錄的權(quán)限
define(SEL,4);//查找數(shù)據(jù)庫記錄的權(quán)限
define(DEL,8);//刪除數(shù)據(jù)庫記錄的權(quán)限

=====================================

接下來假設(shè)有3個(gè)用戶:

A用戶擁有ADD-UPD-SEL-DEL四個(gè)權(quán)限,用位或運(yùn)算計(jì)算A的權(quán)限總值
$a_all=ADD|UPD|SEL|DEL;//$all=15 可以注意到這個(gè)值和加法的結(jié)果是一樣的
B用戶擁有ADD-UPD-SEL三個(gè)權(quán)限,用位或運(yùn)算計(jì)算B的權(quán)限總值
$b_all=ADD|UPD|SEL;//$all=7 這個(gè)值和加法的結(jié)果又是一樣的
C用戶擁有ADD-UPD兩個(gè)權(quán)限,用位或運(yùn)算計(jì)算C的權(quán)限總值
$c_all=ADD|UPD;//$all=3 這個(gè)值和加法的結(jié)果還是一樣的

=====================================

接下來我們用位與做運(yùn)算
$a_all&ADD 結(jié)果為真
$a_all&UPD 結(jié)果為真
$a_all&SEL 結(jié)果為真
$a_all&DEL 結(jié)果為真

=====================================

$b_all&ADD 結(jié)果為真
$b_all&UPD 結(jié)果為真
$b_all&SEL 結(jié)果為真
$b_all&DEL 結(jié)果為假

=====================================

$c_all&ADD 結(jié)果為真
$c_all&UPD 結(jié)果為真
$c_all&SEL 結(jié)果為假
$c_all&DEL 結(jié)果為假

=====================================

發(fā)現(xiàn)奧秘沒有?

1、當(dāng)權(quán)限總值和沒有的那個(gè)權(quán)限做位與運(yùn)算,結(jié)果為假

2、權(quán)限的值都是2的次方

知道了這兩點(diǎn)權(quán)限的處理就變得簡單了吧,只要在每次執(zhí)行涉及權(quán)限操作的時(shí)候把用戶當(dāng)前的權(quán)限總值和當(dāng)前操作需要的權(quán)限做位與運(yùn)算。如果結(jié)果為真執(zhí)行,為假做報(bào)錯(cuò)處理就行啦(當(dāng)然也不一定時(shí)報(bào)錯(cuò),你可以自己設(shè)計(jì)沒有權(quán)限時(shí)的程序)。

以上這篇PHP巧妙利用位運(yùn)算實(shí)現(xiàn)網(wǎng)站權(quán)限管理的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 治多县| 武清区| 武安市| 沂源县| 民权县| 新野县| 瓦房店市| 漳平市| 山东| 泰安市| 磐石市| 峨边| 邢台市| 邢台县| 油尖旺区| 永兴县| 丹巴县| 卫辉市| 城固县| 兴安县| 郧西县| 正蓝旗| 龙川县| 柯坪县| 开封县| 乐至县| 融水| 广宁县| 曲松县| 鸡西市| 蚌埠市| 龙州县| 安福县| 南宫市| 禹城市| 清远市| 新乡县| 花莲市| 滨州市| 商城县| 平邑县|