zoukankan      html  css  js  c++  java
  • Php会员权限

    <?php
    echo $uu=@array_sum(@$_POST['gr']);
    ?>
    <form action="" method="POST">
    ADD<input type="checkbox" name="gr[]" value=1 <?php echo $uu&1?"checked":null;?>>
    UPD<input type="checkbox" name="gr[]" value=2 <?php echo $uu&2?"checked":null;?>>
    LIS<input type="checkbox" name="gr[]" value=4 <?php echo $uu&4?"checked":null;?>>
    DEL<input type="checkbox" name="gr[]" value=8 <?php echo $uu&8?"checked":null;?>>
    <input type="submit" value="提交" />
    </form>


    <?php
    mysql_connect("localhost","root","");
    mysql_select_db("db99");
    mysql_query("set names'UTF8'");
    define('ADD', 1);
    define('UPD', 2);
    define('LIS', 4);
    define('DEL', 8);
    ?>


    <?php
    include_once('config.php');
    $sql="select * from `user_admin` as a,`user_group`
    as b where a.`gro`=b.`sid` and a.`uname`=''";
    $query=mysql_query($sql);
    $rs=mysql_fetch_row($query);
    if($rs[6]&ADD){
    echo "有权限";
    }else{
    echo "无权限";
    }
    ?>

    这里主要使用了二进制的方法 这是一种思路,所以定义常量的时候 必须是2的N次方才行。
    <?php
    define('ADD', 1); //1 转化二进制
    define('UPD', 2); //10
    define('LIS', 4); //100
    define('DEL', 8); //1000

    $sy = ADD | UPD | LIS | DEL;
    echo "所有权限" . decbin($sy);
    $ny = $sy ^ (UPD | DEL);
    echo "没有删除和更新权限" . decbin($ny);

    在PHP中要判断一个数在某些数范围内就可以使用 & 运算符。
    & 是位运算,不是 && 逻辑运算 (位运算符:& | ^ ~)
    例如:7=4|2|1  ===》 $sy = 4|2|1
    这里的或是指的可以能包含的内容值,在位运算里其实可以简单理解成 7=4+2+1,
    用 & 来操作,可以知道7&4、7&2、7&1都是真的,而如果7&8则是假的。
    我们还可以用^ 来从包含的值内去除:如 $ny = $sy ^ 2
    这样一来,$ny 只有 4|1 如果做判断也就只有 $ny&4、$ny&1

  • 相关阅读:
    Java设计模式-----装饰模式
    Java并发包中Lock的实现原理
    ThreadLocal,静态变量,实例变量,局部变量的线程安全
    ThreadLocal类详解
    SQL之LEFT JOIN,EIGHT JOIN,INSERT JOIN的区别
    Wireshark 、HTTPWatch、Fiddler的介绍
    TCP/IP、HTTP、Socket的区别
    我希望你并不幸福
    Autoregressive Convolutional Neural Networks for Asynchronous Time Series
    DRL Lecture1:Policy Gradient
  • 原文地址:https://www.cnblogs.com/smartyman/p/3795545.html
Copyright © 2011-2022 走看看