PHP角色权限管理模块的实现

baipeifa 2011-08-02 11:19:28
各位大虾们,小弟基于角色的权限管理这方面还未接触过;也刚接触PHP,现在得用PHP实现一个资源管理系统,需要不同的角色用户登录进去导航条菜单中显示不同的功能模块。所以想请教大家一下:在PHP怎么实现对页面中模块的隐藏?
...全文
3976 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
twlhh 2011-08-07
  • 打赏
  • 举报
回复
add($id,$pid,$text); 当然不行啦 这样写就是调用php中的add函数啦 不是js的了
baipeifa 2011-08-07
  • 打赏
  • 举报
回复
请教个初级问题:
比如javascript中定义了一个function add(id,pid,text) ,在PHP中将
如果使用 add(1, 0,'helloWorld');这样是OK的
但如果 使用
$id=1;$pid=0;$text='helloWorld' ;
add($id,$pid,$text);
这样不行,问题出在哪里?
[Quote=引用 11 楼 hnxxwyq 的回复:]

你应该去看看acl控制

给你一个acl全集

角色表
角色id - 用户组id - 特殊权限id(其中特殊权限 > 用户组所包含权限)

用户组表
用户组id - 用户组信息

权限表
权限表id - 权限信息 - 与功能模块的关系

用户组-权限关联表
用户组id - 权限集合

特殊权限表
特殊权限id - 权限集合

1、设置权限的删除、添加主要围……
[/Quote]
szseoer 2011-08-04
  • 打赏
  • 举报
回复
学习来着。
潇湘博客 2011-08-04
  • 打赏
  • 举报
回复
$_SESSION["flag"](权限值)

Switch ($_SESSION["flag"]){
Case 1:
echo '1';
Break;
Case 2:
echo '2';
Break;
Default:
Break;
}
tongxuhua 2011-08-04
  • 打赏
  • 举报
回复
数据库用户表中加个字段,给不同权限用户赋值。在PHP代码中按指定值输出模块就好了呗。
xuzuning 2011-08-04
  • 打赏
  • 举报
回复
你应该先去看看 基于角色的访问控制(RBAC)
lazyboy_wu 2011-08-04
  • 打赏
  • 举报
回复
你应该去看看acl控制

给你一个acl全集

角色表
角色id - 用户组id - 特殊权限id(其中特殊权限 > 用户组所包含权限)

用户组表
用户组id - 用户组信息

权限表
权限表id - 权限信息 - 与功能模块的关系

用户组-权限关联表
用户组id - 权限集合

特殊权限表
特殊权限id - 权限集合

1、设置权限的删除、添加主要围绕在 用户组-权限关联表、特殊权限表
2、用户的权限获取则是验证登陆的时候通过用户组和特殊权限获取权限集合
3、展示的时候,根据2获取的权限集合从权限表获取所有功能模块的导航菜单
baipeifa 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 a82168506 的回复:]

3楼说的不错。
你根据角色权限表里面存的东西对每个页面每个模块的权限进行判断就OK了。
[/Quote]

怎么实现了?如果是用树状形式展示功能模块,问题就相当于怎么根据从数据库读取得到的权限、角色显示不同的树状导航菜单?树状中的节点是可以根据对用户权限的增加、删除而动态增加、删除的,这是怎么实现的?用
JS怎么实现,能不能提供具体代码?
baipeifa 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dingyiding 的回复:]

引用 3 楼 baipeifa 的回复:

补充 : 导航里显示的模块是根据用户的角色来显示的,而且角色的权限也是可以修改的。数据库必须有用户表、角色表、权限表、角色权限表 这种数据库设计,不是以前很普通的再用户表里增加一个字段来区别用户身份。


是的,我们的系统也是这样做的
[/Quote]

怎么实现了?如果是用树状形式展示功能模块,问题就相当于怎么根据从数据库读取得到的权限、角色显示不同的树状导航菜单?树状中的节点是可以根据对用户权限的增加、删除而动态增加、删除的,这是怎么实现的?用
JS怎么实现,能不能提供具体代码?
skyaspnet 2011-08-03
  • 打赏
  • 举报
回复
可以设置不同的SESSION角色值
只要开心就好 2011-08-03
  • 打赏
  • 举报
回复
3楼说的不错。
你根据角色权限表里面存的东西对每个页面每个模块的权限进行判断就OK了。
dingyiding 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 baipeifa 的回复:]

补充 : 导航里显示的模块是根据用户的角色来显示的,而且角色的权限也是可以修改的。数据库必须有用户表、角色表、权限表、角色权限表 这种数据库设计,不是以前很普通的再用户表里增加一个字段来区别用户身份。
[/Quote]

是的,我们的系统也是这样做的
baipeifa 2011-08-03
  • 打赏
  • 举报
回复
补充 : 导航里显示的模块是根据用户的角色来显示的,而且角色的权限也是可以修改的。数据库必须有用户表、角色表、权限表、角色权限表 这种数据库设计,不是以前很普通的再用户表里增加一个字段来区别用户身份。
www_7di_net 2011-08-03
  • 打赏
  • 举报
回复
記得,如果你要用session,那么记得一定要在判断之前开启session,即:Session_start();
www_7di_net 2011-08-03
  • 打赏
  • 举报
回复
数据库结构

id username password flag
---------------------------------
3 admin hjhgjftR 1
4 user1 ******* 2


登陸的時候把flag的值存入session或cookie,判斷的時候如下:
if($_SESSION["flag"]==1){
echo '1';
}
if($_SESSION["flag"]==2){
echo '2';
}

或者
Switch ($_SESSION["flag"]){
Case 1:
echo '1';
Break;
Case 2:
echo '2';
Break;
Default:
Break;
}

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧