PHP利用二进制实现权限控制,遇到一个瓶颈,求解决方案。 本帖最后由 subendong 于 2011-12-18 22:01:13 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考linux下的文件(目录)权限设置777 = 1+2+4 1+2+4 1+2+4用位运算不是很快很好吗啊? 那我用这种方法行不行啊?有没有什么弊端?比如当前用户拥有RankID为1和3的权限,我将其放入$_SESSION里面,$_SESSION["rank"] = ",1,3,";下面是我用PHP写的一个函数,用来判断当前用户是否拥有当前的权限<?php session_start(); $_SESSION["rank"] = ",1,3,"; check_rank(1); /** 判断权限 $rank_id,当前权限的ID */ function check_rank($rank_id) { if ( !isset($_SESSION["rank"]) ) { echo "error"; } else { if ( strpos($_SESSION["rank"], "," . $rank_id . ",") > -1 ) { echo "yeah"; } else { echo "shit"; } } }?> 哦,我只是假设。比如一个门户网站可能会随着它的发展,加入越来越多的功能。所以会这么认为。而且我是把每一个action当做一个权限。 action 可以无限的多,但用户群就那么几种:管理群、特权群、一般群再怎么细分,也是有限的 请教各位老大,小弟有些迷惑的东西。 请问高手 :PHP 可不可以自动 分辨出访问者使用 PC 还是手机平台 伪静态里的正则 为什么没跳转行为的发生 获取链接#的顼的内容 问个mysql里sql语句的问题 给分喽~~~~哈哈 问一个简单的问题 数据库连接过多 讨论:如何实现以下功能? ie8 360不显示select元素 Chrom显示为什么呢 关于错误提示的问题
777 = 1+2+4 1+2+4 1+2+4
用位运算不是很快很好吗啊?
session_start();
$_SESSION["rank"] = ",1,3,";
check_rank(1);
/**
判断权限
$rank_id,当前权限的ID
*/
function check_rank($rank_id)
{
if ( !isset($_SESSION["rank"]) )
{
echo "error";
}
else
{
if ( strpos($_SESSION["rank"], "," . $rank_id . ",") > -1 )
{
echo "yeah";
}
else
{
echo "shit";
}
}
}
?>
而且我是把每一个action当做一个权限。
再怎么细分,也是有限的