Rumah  >  Artikel  >  pembangunan bahagian belakang  >  关于PHP权限设计,该怎么处理

关于PHP权限设计,该怎么处理

WBOY
WBOYasal
2016-06-13 11:10:40878semak imbas

关于PHP权限设计
描述:想做一个PHP的权限菜单、根据不同的用户登录从数据库中循环出不同的主菜单及子菜单
数据库结构如下
cfg_useraccount    \\存储用户信息
cfg_role           \\存储角色信息
cfg_resource       \\存储菜单信息
cfg_permission     \\角色拥有的权限

现在是可以通过登录时获取的用户ID、取到该用户所拥有的主菜单、但是如果取到该用户所拥有的子菜单呢、一般对于子菜单应该如何处理?暂时没有啥头绪
\\select a.RoleID,b.ResourceName,b.URL from cfg_permission a join cfg_resource b on a.ResourceID=b.ResourceID where  RoleID in (select RoleID from cfg_useraccount where username='admin');



<br>//数据库CIM<br>create database cim default charset=utf8;<br><br>//用户表<br>create table cfg_UserAccount<br>(<br>   ID int(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,<br>   UserName    varchar(20),<br>   PassWord    varchar(20),<br>   MobilePhone varchar(20),<br>   CreateTM    varchar(20),<br>   UpdateTM    varchar(20),<br>   RoleID     int(4)<br>) DEFAULT CHARSET=UTF8;<br>//数据格式及插入测试数据<br>insert into cfg_UserAccount (UserName,PassWord,MobilePhone,CreateTM,RoleID) values('admin','111111','15957118564','2011-12-30','10');<br>insert into cfg_UserAccount (UserName,PassWord,MobilePhone,CreateTM,RoleID) values('刘成','111111','15957118564','2011-12-30','20');<br>insert into cfg_UserAccount (UserName,PassWord,MobilePhone,CreateTM,RoleID) values('邹琼芳','111111','13735862872','2011-12-30','30');<br><br><br>//角色表<br>create table cfg_Role<br>(<br>   RoleID int(4),<br>   RoleName varchar(20),<br>   Remark    varchar(20)<br>)DEFAULT CHARSET=UTF8;<br>//插入测试数据<br>insert into cfg_Role(RoleID,RoleName,Remark) values('10','超级管理员','具有系统所有权限');<br>insert into cfg_Role(RoleID,RoleName,Remark) values ('20','技术部','具有客服管理等权限');<br>insert into cfg_Role(RoleID,RoleName,Remark) values('30','部门经理','具有修改资料的权限');<br>insert into cfg_Role(RoleID,RoleName,Remark) values('40','财务经理','统计考勤及奖金');<br><br> <br>//资源表<br>create table cfg_Resource<br>(<br>ResourceID     int(4),<br>ResourceName   varchar(20),<br>Remark         varchar(20),<br>URL            varchar(100),<br>);<br><br>insert into cfg_Resource (ResourceID,ResourceName,Remark,URL) values('100','客服管理','对日常客服记录进行管理','SeviceManager.php');<br>insert into cfg_Resource (ResourceID,ResourceName,Remark,URL) values('101','客服子菜单1','对日常客服记录进行管理','SeviceManager.php?action=add');<br>insert into cfg_Resource (ResourceID,ResourceName,Remark,URL) values('102','客服子菜单2','对日常客服记录进行管理','SeviceManager.php?action=del');<br>insert into cfg_Resource (ResourceID,ResourceName,Remark,URL) values('200','会员管理','会员新增和查询','MemberService.php');<br>insert into cfg_Resource (ResourceID,ResourceName,Remark,URL) values('300','查询管理','查询管理','Search.php');<br>insert into cfg_Resource (ResourceID,ResourceName,Remark,URL) values('400','回访管理','对客服记录进行回访','Visit.php');<br>insert into cfg_Resource (ResourceID,ResourceName,Remark,URL) values('500','知识库','产品FAQ','Knowledge.php');<br>insert into cfg_Resource (ResourceID,ResourceName,Remark,URL) values('600','数据管理','数据备份统计相关','Backup.php');<div class="clear">
                 
              
              
        
            </div>
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn