PHP巧妙利用位运算实现网站权限管理的方法

 更新时间:2017年03月12日 12:56:52   投稿:jingxian  
下面小编就为大家带来一篇PHP巧妙利用位运算实现网站权限管理的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

首先我们先定义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的次方

知道了这两点权限的处理就变得简单了吧,只要在每次执行涉及权限操作的时候把用户当前的权限总值和当前操作需要的权限做位与运算。如果结果为真执行,为假做报错处理就行啦(当然也不一定时报错,你可以自己设计没有权限时的程序)。

以上这篇PHP巧妙利用位运算实现网站权限管理的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 探讨多键值cookie(php中cookie存取数组)的详解

    探讨多键值cookie(php中cookie存取数组)的详解

    本篇文章是对多键值cookie(php中cookie存取数组)进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】

    PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】

    这篇文章主要介绍了PHP判断访客是否手机端(移动端浏览器)访问的方法,结合实例形式总结分析了php基于HTTP_X_WAP_PROFILE、HTTP_VIA、HTTP_USER_AGENT、HTTP_ACCEPT等4种方法判断访客类型的相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • 工厂模式在Zend Framework中应用介绍

    工厂模式在Zend Framework中应用介绍

    在Zend Framework中,使用了多种设计模式。其中对数据库的封装,用到了工厂模式
    2012-07-07
  • 10条PHP编程习惯助你找工作

    10条PHP编程习惯助你找工作

    本文来自于作者的一段面试经历,从而总结出10条编写PHP程序时的好习惯和技巧,帮助你在找工作时获得更多的优势。
    2008-09-09
  • PHP如何实现HTTP验证

    PHP如何实现HTTP验证

    这篇文章主要介绍了PHP如何实现HTTP验证,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    2021-04-04
  • php中__toString()方法用法示例

    php中__toString()方法用法示例

    这篇文章主要介绍了php中__toString()方法用法,结合实例形式分析了__toString()方法的功能与简单使用技巧,需要的朋友可以参考下
    2016-12-12
  • php基于base64解码图片与加密图片还原实例

    php基于base64解码图片与加密图片还原实例

    这篇文章主要介绍了php基于base64解码图片与加密图片还原的方法,以实例形式讲述了base64_decode函数的用法,需要的朋友可以参考下
    2014-11-11
  • php文本转图片自动换行的方法

    php文本转图片自动换行的方法

    通过判断字符串和截取字符串再拼接起来实现文本图片自动换行,以下贴出此代码
    2013-03-03
  • 浅谈定义一个PHP函数

    浅谈定义一个PHP函数

    在过去很长一段时间里,PHP都是开发web应用的不二之选。现在7.x版本又填补了许多高级特性和现代化应用的需求,并且提高了开发者的效率。这门语言正不断的发生改变,找出这些变化,并停止过去的写法,放弃你原来的习惯并自豪的使用这些新特性,让你的代码更易读易懂。
    2021-05-05
  • php写入文件不覆盖的实例讲解

    php写入文件不覆盖的实例讲解

    在本篇文章里小编给大家分享关于php写入文件不覆盖的实例讲解以及知识点总结,需要的可以参考下。
    2019-09-09

最新评论