PHP巧妙利用位运算实现网站权限管理
来源:互联网 发布:卡巴斯基mac版激活码 编辑:程序博客网 时间:2024/05/22 04:32
首先我们先定义4个常量来设定四种权限:
=====================================
define(ADD,1);//增加数据库记录的权限
define(UPD,2);//修改数据库记录的权限
define(SEL,4);//查找数据库记录的权限
define(DEL,8);//删除数据库记录的权限
=====================================
接下来假设有3个用户:
A用户拥有ADD-UPD-SEL-DEL四个权限,用位或运算计算A的权限总值
$a_all=ADD|UPD|SEL|DEL;//$all=15 可以注意到这个值和加法的结果是一样的
B用户拥有ADD-UPD-SEL三个权限,用位或运算计算B的权限总值
$b_all=ADD|UPD|SEL;//$all=7 这个值和加法的结果又是一样的
C用户拥有ADD-UPD两个权限,用位或运算计算C的权限总值
$c_all=ADD|UPD;//$all=3 这个值和加法的结果还是一样的
=====================================
接下来我们用位与做运算
$a_all&ADD 结果为真
$a_all&UPD 结果为真
$a_all&SEL 结果为真
$a_all&DEL 结果为真
=====================================
$b_all&ADD 结果为真
$b_all&UPD 结果为真
$b_all&SEL 结果为真
$b_all&DEL 结果为假
=====================================
$c_all&ADD 结果为真
$c_all&UPD 结果为真
$c_all&SEL 结果为假
$c_all&DEL 结果为假
=====================================
发现奥秘没有?
1、当权限总值和没有的那个权限做位与运算,结果为假
2、权限的值都是2的次方
知道了这两点权限的处理就变得简单了吧,只要在每次执行涉及权限操作的时候把用户当前的权限总值和当前操作需要的权限做位与运算。如果结果为真执行,为假做报错处理就行啦(当然也不一定时报错,你可以自己设计没有权限时的程序)。
=====================================
define(ADD,1);//增加数据库记录的权限
define(UPD,2);//修改数据库记录的权限
define(SEL,4);//查找数据库记录的权限
define(DEL,8);//删除数据库记录的权限
=====================================
接下来假设有3个用户:
A用户拥有ADD-UPD-SEL-DEL四个权限,用位或运算计算A的权限总值
$a_all=ADD|UPD|SEL|DEL;//$all=15 可以注意到这个值和加法的结果是一样的
B用户拥有ADD-UPD-SEL三个权限,用位或运算计算B的权限总值
$b_all=ADD|UPD|SEL;//$all=7 这个值和加法的结果又是一样的
C用户拥有ADD-UPD两个权限,用位或运算计算C的权限总值
$c_all=ADD|UPD;//$all=3 这个值和加法的结果还是一样的
=====================================
接下来我们用位与做运算
$a_all&ADD 结果为真
$a_all&UPD 结果为真
$a_all&SEL 结果为真
$a_all&DEL 结果为真
=====================================
$b_all&ADD 结果为真
$b_all&UPD 结果为真
$b_all&SEL 结果为真
$b_all&DEL 结果为假
=====================================
$c_all&ADD 结果为真
$c_all&UPD 结果为真
$c_all&SEL 结果为假
$c_all&DEL 结果为假
=====================================
发现奥秘没有?
1、当权限总值和没有的那个权限做位与运算,结果为假
2、权限的值都是2的次方
知道了这两点权限的处理就变得简单了吧,只要在每次执行涉及权限操作的时候把用户当前的权限总值和当前操作需要的权限做位与运算。如果结果为真执行,为假做报错处理就行啦(当然也不一定时报错,你可以自己设计没有权限时的程序)。
0 0
- PHP巧妙利用位运算实现网站权限管理
- PHP巧妙利用位运算实现网站权限管理
- 利用位运算进行权限管理
- 利用位运算进行权限管理
- 运用PHP位运算做网站权限
- php使用位与运算符【&】或【|】实现权限管理
- C# 位运算权限管理
- RBAC位运算权限管理
- C#中使用位运算来实现权限管理
- C#中使用位运算来实现权限管理
- C# 使用位运算来实现权限管理
- PHP位运算权限设计
- 巧妙利用位运算提高程序的效率
- 位运算巧妙用法
- 权限管理控制算法(位运算)
- 利用位运算实现加法运算
- php位运算的应用-权限控制
- php位运算的权限设计
- gridview 鼠标点击行变色 等实现
- 深入Java集合学习系列:HashSet的实现原理
- 品牌跟踪研究的意义
- C语言经典算法100例-070-计算字符串的长度
- SAE利用storge上传文件
- PHP巧妙利用位运算实现网站权限管理
- 贪心-codeforces-388A-Fox and Box Accumulation
- 自己训练SVM分类器进行HOG行人检测
- css 项目碰到兼容问题
- 【workerman】CentOS下的workerman对应的环境配置
- 滑稽,古指谓能言善辩,言辞流利,现在一般都指言语、动作或事态令人发笑。
- windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境
- MySQL复制环境中使用slave_exec_mod参数
- Logback配置文件详解