微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/php/27336.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

多用户权限

相关推荐