【发布时间】:2010-12-06 12:37:41
【问题描述】:
我知道 vBulletin 使用 bitperms,我也在使用它们,但是当我到达 10^63 他们停止工作时,它不会处理任何大于此的数字(它是我的 PHP 主机)。
我很想知道myBB, PhpBB, IPB, Joomla 和网络上的其他脚本用于权限系统,我真的很想在我的脚本中使用快速权限设置。现在我已经在每个名为 permgroups 的用户上实现了一个 sql 变量,并且将有一个值,例如 1,4,5 并且每个数字对应于一个权限组,该权限组有一个类似的变量 canseepages 1,2,3,4,1,4,1,54,6,4,5,22,6,2,3,4,1,2 对应于我的每个页面有。
首先我在 PHP 中选择 permgroups
然后我在 permgroups 上使用 PHP 的爆炸
然后我对用户可以看到的每个 perm 组进行 foreach
在 foreach 中,我运行 sql 查询以从权限组中获取 canseepages 变量
然后我将它附加到一个变量中,这样我就得到了 MASSIVE 之类的东西
$variable = '1,2,3,4,5,6,7,8,9,2,22,55,44,55,33,44,11,44,33,44,11,33,44,'.
'22,33,44,11,22,33,44,33,11,22,33,44,33,22,33,44,55,44,'.
'55,54,26,77,84,645,345,233,11,4,11,3,32';
该变量表示允许用户查看的所有页面。然后我将其分解为一个数字数组,并使用in_array() 检查他们尝试查看的当前页面是否在他们允许查看的页面数组中。
现在速度非常快,但我只是认为总体上必须有一种更快的方法来完成所有这些操作。
【问题讨论】:
标签: php permissions