Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过权限访问脚本_Php_Kohana - Fatal编程技术网

Php 通过权限访问脚本

Php 通过权限访问脚本,php,kohana,Php,Kohana,如何使用权限方案限制对脚本的访问?我想到了ff: 将权限存储为密钥为2(2、4、8、16)幂的数组,并使用位运算符将用户权限与访问脚本所需的权限进行比较 将权限存储为字符串,并为脚本分配一组权限。如果用户试图访问脚本,则会执行数据库查找(以查找用户拥有的权限) 你有更好的方法吗?我尝试使用位运算符,我看到了一种使用常量(即const ADD_FORUM=2)的方法,但我计划将我的权限放在配置文件中并在那里设置它们,允许我从任何脚本调用它 顺便说一句,我正在使用Kohana,最近我开始使用PHP进

如何使用权限方案限制对脚本的访问?我想到了ff:

  • 将权限存储为密钥为2(2、4、8、16)幂的数组,并使用位运算符将用户权限与访问脚本所需的权限进行比较
  • 将权限存储为字符串,并为脚本分配一组权限。如果用户试图访问脚本,则会执行数据库查找(以查找用户拥有的权限)
  • 你有更好的方法吗?我尝试使用位运算符,我看到了一种使用常量(即const ADD_FORUM=2)的方法,但我计划将我的权限放在配置文件中并在那里设置它们,允许我从任何脚本调用它


    顺便说一句,我正在使用Kohana,最近我开始使用PHP进行开发……我决定在Kohana中构建自己的auth库,在conf文件中的某些地方:

    const('VIEW_FORUM', 1);
    const('ADD_FORUM', 2);
    const('DELETE_FORUM', 4);
    
    在用户详细信息中:

    // read only user
    $userPermissions = VIEW_FORUM;
    // full access
    $userPermissions = VIEW_FORUM + ADD_FORUM + DELETE_FORUM;
    
    在需要检查权限的页面上:

    // permission ADD_FORUM is required  
    if ($userPermissions & ADD_FORUM) echo 'all good';
    
    // permission ADD_FORUM & DELETE is required  
    
    if ($userPermissions & (ADD_FORUM + DELETE_FORUM)) echo 'all good';