php限权管理的 思路,PHP权限分配思路

可以,但是这样管理,因为你的是用户直权限4种常见的分类,你所说的属于第4类,不推荐使用,推荐使用前3类(用的最多的是第3类):1.用户+组+角色+权限2.用户+组+权限3.用户+角色+权限4.用户+权限我来举个例子,就拿第3类来举例:权限:用户操作的具体事件如:添加管理员,修改管理员,删除管理员角色:角色指定某一类用户拥有固定的权限,例如:超级管理员,管理员用户:最终执行权限的用户,如:admin,admin2那么我们根据:用户+角色+权限,需要3个表互相关联(每个表的id是唯一标识符,也就是主键)用户表level字段用来存储level表id,level表permission字段用来存储permission表id用户表:php_user|数据:id=1,username=admin,level=1| id=2,username=admin2,level=2等级表:php_level|数据:id=1,level_name=超级管理员,permission=1,2,3|id=2,level_name=管理员,permission=2权限表:php_permission数据:id=1,permission_name=添加管理员|id=2,permission_name=修改管理员|id=3,permission_name=删除管理员如果还没看懂,请再看下面的PHP实际例子:// ... 之前的操作,如先连接数据库,登录用户$_COOKIE['username'] = 'admin2'; // 用户名称// SQL查询语句,查询用户等级,用来判断是否可以:添加管理员$sql = "SELECT `level` FROM `php_user` WHERE `username` = '{$_COOKIE['username']}' LIMIT 1;";// 获取查询结果$result = msyql_query($sql);// 解析结果集$array = mysql_fetch_assoc($result);// 在创建SQL语句用来查询等级表获取操作权限$sql = "SELECT `permission` FROM `level` WHERE `id` = '{$array['level']}' LIMIT 1;";// 获取查询结果$result = msyql_query($sql);// 解析结果集$array = mysql_fetch_assoc($result);// 创建权限数组,用SESSION存储,记得开启SESSION,session_start();// 使用,逗号分割权限字符,例如:1,2,3 = array(1, 2, 3)$_SESSION['permission'] = explode(',', $array['permission']);// 最后来判断是否有操作权限if (!in_array(1, $_SESSION['permission'])) exit('无权操作!');// 授权成功,开始:添加管理员,但是我们的用户是admin2,他是管理员,他的权限只有:修改管理员,因此admin2无权操作:添加管理员以上如果还是没有明白或有任何的问题,可以随时追问~

阅读全文 >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值