首页 > 后端开发 > 正文

php用户权限管理框架 php权限管理如何实现

2023-09-20 22:59:00 | 我爱编程网

小编今天整理了一些php用户权限管理框架 php权限管理如何实现相关内容,希望能够帮到大家。

php用户权限管理框架 php权限管理如何实现

php如何设置管理员权限

推荐:《PHP视频教程》
具体问题:
PHP-后台权限管理设计问题
有没有哪位大哥做过后台权限管理这个模块的?能否给我说下你的设计思路?有文档给我看看也行(我也在网上找了资料,才来提问的,不要让我自行百度好吗?心塞...)
我是这么想的,有三张表,管理员表、管理组表、规则表
管理员表(members)
m_id m_name m_passw m_groupid
管理员ID 用户名 密码 管理所对应的管理组ID
规则表(rules)
r_id r_name r_method r_status
规则ID 规则名 控制器名/方法名 状态
管理组(group)
g_id g_name g_content
组ID 组名 组权限(包含这一组所有的规则ID)如上面代码里的,我觉得三张表就可以应付了,为什么我看到网上有6、7张表,之多,中间有关联表或映射表什么的东西,我想知道,这么多表具体有什么作用呢?实际操作起来(操作数据库)还很复杂,如果是必须,具体作用是什么?求解答疑惑
解决办法:

常见的设计方式RBAC:
设计思路:通过对当前访问URI进行权限鉴定
数据结构:
表1:权限表,用于存放所有的访问URI
表2:权限组表,存权限组拥有访问权限的URI的id
表2:权限组,权限组对应有哪些用户
大致就是这么个思路

php用户权限管理框架 php权限管理如何实现我爱编程网

php后台多用户权限设置及实现思路

adminconfig.php 这是后台系统中所有文件权限配置。
fun.php 这是一个功能函数
left.php 网站后台根据用户登录的ID来加载相对应的功能菜单
op.php 调用adminconfig.php 默认权限文件
opsava.php 保存用户权限成一个php文件
好了我们先来看看 fun.php文件吧。
. 代码如下:

<?
function findsub($keys ,$userid='abc' ) //此函数重要就是为了调用用户的权限信息
{
include('user/'.$userid.'.php');
foreach($bb as $key=>$submenu)
{
foreach($submenu as $subkey=>$menuitem)
{
if( $subkey == $keys )
{
return 1;
}
}
}
}
//下面为生成用户的php权限文件
//写入
function cache_write($name, $var, $values) {
$cachefile = 'op/ www.hzhuti.com/ '.$name.'.php';
$cachetext = "<?phprn".'$'.$var.'='.arrayeval($values)."rn?>";
if(!swritefile($cachefile, $cachetext))
{
exit("File: $cachefile write error.");
}
}
//数组转换成字串
function arrayeval($array, $level = 0) {
$space = '';
for($i = 0; $i <= $level; $i++) {
$space .= "t";
}
$evaluate = "Arrayn$space(n";
$comma = $space;
foreach($array as $key => $val) {
$key = is_string($key) ? '''.addcslashes($key, ''\').''' : $key;
$val = !is_array($val) && (!preg_match("/^-?d+$/", $val) || strlen($val) > 12) ? '''.addcslashes($val, ''\').''' : $val;
if(is_array($val)) {
$evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
} else {
$evaluate .= "$comma$key => $val";
}
$comma = ",n$space";
}
$evaluate .= "n$space)";
return $evaluate;
}
//写入文件
function swritefile($filename, $writetext, $openmod='w') {
if(@$fp = fopen($filename, $openmod)) {
flock($fp, 2);
fwrite($fp, $writetext);
fclose($fp);
return true;
} else {
exit("File: $filename write error.");
return false;
}
}
?>

adminconfig.php 后台权限配置文件,以一个数组形式保存
. 代码如下:

<?
$menus = array(
'news' => array(
'caption'=>'资讯管理',
'icon'=>'admin/icon_15.gif',
'sub' => array(
'newsaddtype' => array('caption' => '分类增加', 'url' => 'news/addtype.php'),
'newstypemange' => array('caption' => '分类管理', 'url' => 'news/typemange.php'),
'newsnewsend' => array('caption' => '发布资讯', 'url' => 'news/newsend.php'),
'newsnewmange' => array('caption' => '资讯管理', 'url' => 'news/newmange.php'),
'newscomments' => array('caption' => '评论管理', 'url' => 'news/comments.php'),
),
),
'ask' => array(
'caption'=>'问卷调查',
'icon'=>'admin/icon_15.gif',
'sub' => array(
'voteadmin_subject_add' => array('caption' => '添加投票主题', 'url' => 'vote/admin_subject_add.php'),
'voteadmin_subject' => array('caption' => '管理投票主题', 'url' => 'vote/admin_subject.php'),
'voteadmin_title_add' => array('caption' => '添加投票问题', 'url' => 'vote/admin_title_add.php'),
'voteadmin_title' => array('caption' => '管理投票问题', 'url' => 'vote/admin_title.php'),
'voteadmin_question_add' => array('caption' => '添加投票答案', 'url' => 'vote/admin_question_add.php'),
'voteadmin_question' => array('caption' => '管理投票答案', 'url' => 'vote/admin_question.php'),
'voteadmin_system' => array('caption' => '投票初始配置', 'url' => 'vote/admin_system.php')
),
),
'ads' => array(
'caption'=>'广告管理',
'icon'=>'admin/icon_15.gif',
'sub' => array(
'ada' => array('caption' => '增加广告', 'url' => 'ada.php'),
'adm' => array('caption' => '广告管理', 'url' => 'adm.php'),
'flashadd' => array('caption' => '焦点图广告增加', 'url' => 'flashadd.php'),
'flashad' => array('caption' => '焦点图广告管理', 'url' => 'flashad.php')
),
),
'mange' => array(
'caption'=>'系统管理员',
'icon'=>'admin/icon_15.gif',
'sub' => array(
'adminuser' => array('caption' => '管理员添加', 'url' => 'adminuser.php'),
'modpass' => array('caption' => '密码修改', 'url' => 'modpass.php')
),
),
);
?>

left.php文件很简单就是根据用户登录后ID读出权限
. 代码如下:

<?
$userid = $_SESSION['adminid'];
include("op/admincofig.php");
include("op/ www.hzhuti.com /".$userid.".php");
foreach($bb as $key=>$submenu)
{
echo "<tr><td bgcolor="#D879A7" > nr <font color="#EA6A8D" face="Webdings"></font><b>".$menus[$key]['caption']."</b><br /></td></tr> nr <tr ><td bgcolor="F5E8F1">";
foreach($submenu as $subkey=>$menuitem)
{
$tmparr = explode("|",$menuitem);
echo "<font color="#EA6A8D" face="Webdings">4</font><a href='".$tmparr[1]."' target="mainframe">".$tmparr[0]."</a><br> nr";
}
echo "</td></tr> nr ";
}

op.php这个文件就是要调用我们的adminconfig.php文件,然后利用fun.php文件中函数把提供过来的数据保存成数组如图

点击保存我们调用了opsava.php 文件,代码如下
. 代码如下:

<?
include("op/fun.php");
if( $_POST )
{
$sarray = $_POST ;
cache_write($userid,'bb',$sarray);//写入缓存
echo "<script>alert('编辑保存成功!');location='op.php?userid=".$userid."';</script>";
}
?>

保存成功后文件内容如
. 代码如下:

<?php
$bb=Array
(
'member' => Array
(
'user_search' => '会员升级管理|user_search.php'
),
'membercy' => Array
(
'cyuser_search' => '会员升级管理|cyuser_search.php',
'cyuser_search5' => '交友会员|cyuser_search.php?grade=5'
),
'userid' => 7,
'button' => '保存编辑'
)
?>

这样的话我们的left只要加载 7.php文件就只会显示这里在的文件,这样一个基本的后台权限就完成了。

php用户权限管理框架 php权限管理如何实现

php权限管理如何实现

可以使用acl控制实现,参考acl全集如下:

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

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

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

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

5、特殊权限表
特殊权限id - 权限集合
注意:
1、设置权限的删除、添加主要围绕在 用户组-权限关联表、特殊权限表。
2、用户的权限获取则是验证登陆的时候通过用户组和特殊权限获取权限集合。
3、展示的时候,根据2获取的权限集合从权限表获取所有功能模块的导航菜单。

以上就是我爱编程网小编为大家带来的内容了,想要了解更多相关信息,请关注我爱编程网。
与“php用户权限管理框架 php权限管理如何实现”相关推荐
用户权限框架php php权限管理如何实现
用户权限框架php php权限管理如何实现

php权限管理如何实现可以使用acl控制实现,参考acl全集如下:1、角色表角色id-用户组id-特殊权限id(其中特殊权限&gt;用户组所包含权限)2、用户组表用户组id-用户组信息3、权限表权限表id-权限信息-与功能模块的关系4、用户组-权限关联表用户组id-权限集合5、特殊权限表特殊权限id-权限集合注意:1、设置权限的删除、

2023-09-08 05:10:07
php后台权限管理框架 php权限管理如何实现
php后台权限管理框架 php权限管理如何实现

php后台多用户权限设置及实现思路adminconfig.php这是后台系统中所有文件权限配置。fun.php这是一个功能函数left.php网站后台根据用户登录的ID来加载相对应的功能菜单op.php调用adminconfig.php默认权限文件opsava.php保存用户权限成一个php文件好了我们先来看看fun.php文件吧。.代码如下:&lt;?fu

2023-09-19 12:51:49
php通用权限管理框架源码 php权限管理如何实现
php通用权限管理框架源码 php权限管理如何实现

php权限管理如何实现可以使用acl控制实现,参考acl全集如下:1、角色表角色id-用户组id-特殊权限id(其中特殊权限&gt;用户组所包含权限)2、用户组表用户组id-用户组信息3、权限表权限表id-权限信息-与功能模块的关系4、用户组-权限关联表用户组id-权限集合5、特殊权限表特殊权限id-权限集合注意:1、设置权限的删除、

2023-09-24 22:08:21
php会员权限管理开源框架 php权限管理如何实现
php会员权限管理开源框架 php权限管理如何实现

PHP开源框架是什么意思PHP开源框架是什么意思PHP开发的基础功能和通用的代码,在遵循开源协议的情况下,允许用户利用源代码在其基础上修改和学习的,或进行项目开发,但代码同样是有版权的,同样也受到法律保护。PHP框架推荐一、ThinkPHP框架优势:简单易用(Model,Controller,View负责各自的工作),它拥有支持XML标签库技术的编译型模版引擎,支持两

2023-09-25 18:05:13
php用户权限框架 php如何设置管理员权限
php用户权限框架 php如何设置管理员权限

php用户权限分配界面说一下我的思路(RBAC模式),供你参考,邮箱不发了,由于数据库需要保密,截图也不贴了。你在左侧导航栏做三个菜单项,分别是:1.用户管理2.角色管理3.权限管理其中1和2给管理员操作,管理员可以对其进行增删改查等操作;3由软件开发者操作,不能分配给管理员;普通用户对1、2、3都无权操作。权限管理界面,软件开发者可以对各种权限进行增删改查;

2023-09-10 23:18:30
php安全权限框架 php权限管理如何实现
php安全权限框架 php权限管理如何实现

php现在比较热门实用的框架有哪些?PHP作为强大的Web开发语言,上手非常容易,开发效率很高,不需要像Java一样进行编译后才能执行,但是如果用原生的PHP来开发还是会存在开发速度慢,或者说后期维护难度大,缺乏代码严谨性等问题,我就需要使用目前流行的MVC框架,那么现在有哪些PHP框架更方便,更快捷呢?1.Laravellaravel可以说是从去年到今年都是最热门的PHP框架

2023-09-23 07:25:39
权限管理框架php php权限管理
权限管理框架php php权限管理

php权限管理如何实现可以使用acl控制实现,参考acl全集如下:1、角色表角色id-用户组id-特殊权限id(其中特殊权限&gt;用户组所包含权限)2、用户组表用户组id-用户组信息3、权限表权限表id-权限信息-与功能模块的关系4、用户组-权限关联表用户组id-权限集合5、特殊权限表特殊权限id-权限集合注意:1、设置权限的删除、

2023-09-10 08:03:56
php+auth权限管理框架 php如何设置管理员权限
php+auth权限管理框架 php如何设置管理员权限

php如何设置管理员权限推荐:《PHP视频教程》具体问题:PHP-后台权限管理设计问题有没有哪位大哥做过后台权限管理这个模块的?能否给我说下你的设计思路?有文档给我看看也行(我也在网上找了资料,才来提问的,不要让我自行百度好吗?心塞...)我是这么想的,有三张表,管理员表、管理组表、规则表管理员表(members)m_idm_namem_passwm_groupid

2023-09-27 19:38:47