PHP巧妙利用位运算实现网站权限管理的方法
发布:smiling 来源: PHP粉丝网 添加日期:2018-08-08 17:44:53 浏览: 评论:0
首先我们先定义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的次方
知道了这两点权限的处理就变得简单了吧,只要在每次执行涉及权限操作的时候把用户当前的权限总值和当前操作需要的权限做位与运算。如果结果为真执行,为假做报错处理就行啦(当然也不一定时报错,你可以自己设计没有权限时的程序)。
Tags: 权限 方法 网站
相关文章
- ·php数据库连接之权限配置(2014-08-02)
- ·PHP+MYSQL会员系统的登陆即权限判断(2014-09-11)
- ·PHP调用Linux命令无权限的问题解决(visudo)(2015-04-04)
- ·PHP mkdir()无写权限的问题解决方法(2021-02-22)
- ·关于php处理textarea回车换行替换方法(js调用出错)(2013-11-29)
- ·php 关闭错误提示方法总结与性能分析(2014-01-03)
- ·PHP 浏览器缓存的各种操作方法(2014-01-15)
- ·php变量使用方法详解(2014-01-16)
- ·PHP类中的静态方法使用实例(2014-02-18)
- ·php输出excel的简单方法(csv格式)(2014-02-21)
- ·PHP的可变变量名使用方法详解(2014-02-22)
- ·php连接mysql错误的配置方法介绍(2014-02-22)
- ·Php入门教程之PHP常量使用方法详解(2014-02-26)
- ·php中运算符使用方法总结(2014-03-06)
- ·php的异常处理基础方法(2014-03-19)
- ·php中计算页面加载时间几种方法总结(2014-03-21)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)