扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
我在遇到权限分级的时候是用$_SESSION来控制的,值是1就允许查看,是0就不允许
创新互联主要从事成都网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务从化,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
可在登陆的时设置,也可以在查询的时候设置
然后根据$_SESSION设置sql语句,大致如下
在登陆时根据filldname字段设置$_SESSION
if($row["filldname"]=="price"){
$_SESSION["quanxian"]=1;
}else{
$_SESSION["quanxian"]=0;
}
然后查询时根据条件设置sql语句
if($_SESSION["quanxian"]==1){
$sql="select po,pohh,wlbh,gysdm,dj,pddte from table where 查询条件";
}else{
$sql="select po,pohh,wlbh,gysdm,pddte from table where 查询条件";
}
大致上就是这样
期待更出色的答案
你说的这个问题就是thinkphp中的Rbac用户权限问题,需要在数据库中建立多张表来实现(这是最重要的一步)。先来说一下总的思路:
首先、用户登陆时候验证用户存在之后把用户的id存入session之中,之后在common类(这个类是继承的action类,之后其他要用到权
限的类来继承common类)中,使用_initialize()方法(继承这个类的首先都要初始化这个方法,通过这个方法,可以达到用户权限的判断)。
之后、读取所用的节点,并且根据用户的id读取出用户所属组(role),之后再根据用户组取出权限表中的节点,最后用in_array()来判断用户是否有这个节点(栏目)如果有则显示(读取出来的节点),没有则unset()方法
删除。这样实现了,比较简单的方法是使用官方的类库解决!
下面再补充几个重要的步骤:
建表:到thinkphp中的ORG/Util/RBAC.class.php中之后里面有建数据库表的代码(文件开头部分就有)。有四个表(节点表(node),用户所属组表(role),权限表(acces),用户角色表(role_user))。创建四张表但是‘用户表’要自己建(总共有五张表),最后添加数据就是了。
可能说的很空洞,最好的还是去官网看点视频之后在看这个,或者相关的说明就懂了。说的不是很清楚,但是希望能给你指导一个方向吧。也为了能帮到更多初学者和鼓励自己学习更多来帮助到更多的人,我也开通了百度空间(地址:hi.baidu.com/flyxiangshang)。也希望大家能多多支持。很多事情不是你做不做,最重要的是你能坚持多久。向上吧!
把菜单成一个数据库表,指定一个键。如:
id:1, title:文章管理, icon: document, url: admin/article/index (更多字段根据需要设置)
id:2, title:产品管理, icon: cube, url: admin/product/index
id:3, title:系统设置, icon: setting, url: admin/setting/index
然后在管理员表中添加一个varchar(500) (长度根据你的菜单总数估计)或text字段
在管理员权限管理中列出所有菜单项,把id作为健值,选中的保存在管理员表的权限字段中
格式类似: 1,2,3
然后在输出菜单的时候进行权限判断
//将权限字段切割成数组
$perms = explode(',', $user['permission']);
foreach($menus as $menu){
if(in_array($perms, $menu['id'])){
echo 'a href="'. $menu['url'].'" '.$menu['title'].'/a';
}
}
然后在每个页面根据页面对应的权限id做一个判断
//比如在文章页面
if(!in_array($perms, 1)){
exit('没有权限');
}
以上是大体思路,具体根据你的系统设计编写代码并对应地优化。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流