php后台多用户权限组思路与实现程序代码分享

前端之家收集整理的这篇文章主要介绍了php后台多用户权限组思路与实现程序代码分享前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

adminconfig.PHP 这是后台系统中所有文件权限配置。
fun.PHP 这是一个功能函数
left.PHP 网站后台根据用户登录的ID来加载相对应的功能菜单
op.PHP 调用adminconfig.PHP 默认权限文件
opsava.PHP 保存用户权限成一个PHP文件
好了我们先来看看 fun.PHP文件吧。
<div class="codetitle"><a style="CURSOR: pointer" data="87463" class="copybut" id="copybut87463" onclick="doCopy('code87463')"> 代码如下:

<div class="codebody" id="code87463">
<?
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 后台权限配置文件,以一个数组形式保存
<div class="codetitle"><a style="CURSOR: pointer" data="79177" class="copybut" id="copybut79177" onclick="doCopy('code79177')"> 代码如下:
<div class="codebody" id="code79177">
<?
$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'=>'问卷调查',
'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'=>'广告管理',
'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'=>'系统管理员',
'sub' => array(
'adminuser' => array('caption' => '管理员添加','url' => 'adminuser.PHP'),
'modpass' => array('caption' => '密码修改','url' => 'modpass.PHP')
),
);
?>

left.PHP文件很简单就是根据用户登录后ID读出权限
<div class="codetitle"><a style="CURSOR: pointer" data="57150" class="copybut" id="copybut57150" onclick="doCopy('code57150')"> 代码如下:
<div class="codebody" id="code57150">
<?
$userid = $_SESSION['adminid'];
include("op/admincofig.PHP");
include("op/ www.hzhuti.com /".$userid.".PHP");
foreach($bb as $key=>$submenu)
{
echo "<tr><td bgcolor="#D879A7" style="line-height:22px;text-align:center;color:#ffffff;"> nr <font color="#EA6A8D" face="Webdings">".$menus[$key]['caption']."
</td></tr> nr <td bgcolor="F5E8F1">";
foreach($submenu as $subkey=>$menuitem)
{
$tmparr = explode("|",$menuitem);
echo "<font color="#EA6A8D" face="Webdings">4<a href='".$tmparr[1]."' target="mainframe">".$tmparr[0]."
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 "";
}
?>

保存成功后文件内容
代码如下:
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文件就只会显示这里在的文件,这样一个基本的后台权限就完成了。

原文链接:https://www.f2er.com/php/27336.html
多用户权限

猜你在找的PHP相关文章