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.