php后台多用户权限设置及实现思路
1.PHP5提供了3种访问方式:
2.分别是一下几种:
(1)public:可以被毫无限制地访问,类外部的任何代码都可以读写public属性,在PHP5之前的版本中,所有的方法和属性都是public。
(2)private:只在类的内部可见,类中的任何成员和类实例都可以访问private成员,在所在类之外,不能改变或者读取private属性的值,也不能调用private的方法。子类也不能访问父类的private成员。
(3)protected:能被同类和继承出的类的方法访问到。
如果没有指明,默认均为public。
这个得根据实际程序情况处理了,一般根据用户的数据表和内容表对应就可以不同的用户不同的数据了,要实现肯定要开发。
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" style="line-height:22px;text-align:center;color:#ffffff;"> 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文件就只会显示这里在的文件,这样一个基本的后台权限就完成了。
哪项工具能监控和提高实施质量保证过程的效率
总的来说运维人需要能够在一个中实现资产管理、分布式部署、漏洞扫描、风险评估、策略管理、实时流量监控、异常流量分析、攻击检测报警、关联分析、风险计算、安全事件告警、事件聚合、日志收集与分析、知识库、时间线分析、统一报表输出、多用户权限管理的功能,这种集成开源工具到底有没有?它去哪儿啦?目前...
HP CP5525xh基本参数
打印性能: 黑白打印速度约为30页每分钟,彩色打印速度同样为30ppm。首页打印时间仅需10秒,快速高效。分辨率: 提供600x600dpi的高分辨率,保证输出的清晰度和质量。网络支持: 支持有线网络打印,方便多用户共享和远程打印。双面打印: 具备自动双面打印功能,节省纸张,环保节能。介质兼容性: 支持多种纸张...
惠普电脑问题老解决不了我该怎么办?
随着目前笔记本电脑硬件配置的逐渐升级,在提升性能的同时,笔记本电脑的整体发热量也在不断上升,这个问题现在已经得到越来越多用户的重视。目前,各大散热器厂商们也是费劲心思推出各类相关产品。 笔记本电脑 与传统的台式机不同,由于体积和噪音方面的限制,笔记本电脑的散热系统不可能做的很大。而在台式机中,你却完全可以...
服务器百问百答 听说惠普推出了家庭服务器产品,能否介绍一下它们的功用...
是网络的中枢和信息化的核心。由于服务器是针对具体的网络应用特别制定的,因而服务器又与微机(普通PC)在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在很大的区别。而最大的差异就是在多用户多任务环境下的可靠性上。用PC机当作服务器的用户一定都曾经历过突然的停机、意外的网络中...
我的hp笔记本不知道为什么在qq语音还有视频的时候听不到对方说话 但是...
您好,感谢您选择惠普产品。根据您的描述,建议您参考下列信息:1、您在使用QQ软件聊天时听不到对方说话,说明这时声音无法从机器的扬声器或者耳机输出,请您使用其它软件例如MSN软件测试声音是否可以正常输出。如果其它聊天软件可以正常输出声音,只是QQ不能正常语音的现象,很可能是由于QQ软件没有设置好或者...
最大PC龙头是联想,但最多人使用的Windows 10 PC则来自HP…
虽然HP过去成为PC市场龙头,但在几年前开始由联想超车之后,似乎一直无法扳回局面。不过,在相关数据统计之下,显示HP在Windows10PC市占依旧维持龙头地位。根据AdDuplex广告机构针对全球装置流量统计数据显示,HP在全球Windows10装置市占依然抢下24.3%比例,其次则是抢下15%市占比例的Dell,而目前被视为PC...
HP M2727nf传真性能
在高级功能上,HP M2727nf提供了自动重拨功能,即使初次拨号失败,也能自动再次尝试。传真延迟发送功能允许你设定发送时间,非常适用于夜间或非工作时间。最大广播地点数可达119个,满足多用户的需求。它还配备了垃圾传真过滤功能,有效防止无用信息的干扰,保持通信环境整洁。对于那些需要自动化处理的用户,...
打印机监控系统打印监控软件介绍
客户端支持认证、多用户共享和按项目计费,管理界面直观易用,服务器集中管理,支持多种认证和计费模式,适应各种网络环境和用户需求。PrintShield凭借其全面的功能、灵活的架构和易扩展性,为用户提供了高效、安全的打印管理解决方案。无论是在成本控制还是在打印权限管理上,都展现出强大的实用价值。
win8电脑连接win7电脑上共享的打印机
①:计算机(我的电脑、这台电脑)图标右键---管理---服务和应用程序---服务,或开始→控制面板→系统和安全→管理工具-服务,设置下面服务为自动启动并启动,重启计算机 server print spooler workstation SSDP Discovery windows firewall Secondary Logon 为多用户临时权限分配功能,某些用户因为是非管理...
我的hp1010在打印wps文档时为什么经常出现乱码
光是这样并不能启动高级文件共享,这只是禁用了简单文件共享,还必须启用帐户,设置权限,才能达到限制访问的问题。第二,设置帐户 进入控制面板的用户帐户,有计算机的帐户和来宾帐户。仅仅是开启GUEST帐户并不能达到多用户不同权限的目的。而且在高级文件共享中,Windows XP默认是不允许网络用户通过没有密码...
子丰博富马: adminconfig.php 这是后台系统中所有文件权限配置. <br>fun.php 这是一个功能函数 <br>left.php 网站后台根据用户登录的ID来加载相对应的功能菜单 <br>op.php 调用adminconfig.php 默认权限文件 <br>opsava.php 保存用户权限成一个php文件...
颍泉区18978516656: php怎样实现多用户管理? - ?
子丰博富马: 首先一个是在修改用户资料页面怎样判断当前登陆的是哪个用户? ----答:你在数据库里面加个字段,记录用户的类型的,然后登陆的时候用 cookie 或者 sessssion 记录他的用户类型.如 $_session['type']='admin'然后就是,其实cookie很安全至少不像传说中的那样危险,这个你可以百度下别人的文章,一般情况下cookie是很难被修改的,所以考虑cookie的安全是必要的但是太过分了就没必要了. 其次,session保存在服务器不假,每个session都有一个唯一的id 你打印 session数组久知道,程序可以通过那个id判断session的所有者.
颍泉区18978516656: php 如何设置后台权限问题? - ?
子丰博富马: 复杂的权限系统,不是三言二语就可以说明白的,其简单的权限系统思路大概是这样的:1,每个管理员都给他设定一个等级比如超级管理员用9,普通管理员用8,编辑用12,登陆后,把管理员的等级缓存到session里,3,在你要做权限检查的页面里判断当前登陆的用户的等级是否有权限访问.比如如果当前页只能超级管理员可以访问,那你在检查时就得判断如果当前登陆的用户等级不等于9,就exit
颍泉区18978516656: php网站后台session设置用户登录权限,:我想做个分配不同用户登录后台的权限,只有admin才能用的栏目. - ?
子丰博富马: 其他 可以用简单的方法来解决 在数据库用户表 添加一个字段来存储用户属性 你可以用1代表管理员 0代表普通用户 然后 用户登陆后 判断是0还是1 从而来控制他们访问的权限
颍泉区18978516656: php后台权限管理怎么做 - ?
子丰博富马: 在用户的数据表里增加一个字段,用来放用户的等级的,当用户登入后赋值到session,当$_SESSION['username']=1;可判断为最高管理员,$_SESSION['views']=2为普通管理员就可以了
颍泉区18978516656: 想通过PHP来设计一个类似下面网址的后台角色和权限管理系统,您有什么设计思路或者提示呢? - ?
子丰博富马: PHP没用过╮(╯_╰)╭,不过做权限管理的话,我觉得有以下几点吧:有角色管理模块有用户管理模块有权限管理模块有界面绑定角色功能(独立出来或者放在界面管理模块里)用户多角色时要想好权限优先级多使用控件的hidden属性,通过权限来控制界面、控件、按钮的显示绑定权限时,建议不要用界面名称来绑定,应该是编码&编码这样的绑定 暂时只想到这些o(╯□╰)o
颍泉区18978516656: php用户权限分配界面 - ?
子丰博富马: 说一下我的思路(RBAC 模式),供你参考,邮箱不发了,由于数据库需要保密,截图也不贴了.你在左侧导航栏做三个菜单项,分别是:1. 用户管理2. 角色管理3. 权限管理 其中 1 和 2 给管理员操作,管理员可以对其进行增删改查等操作;3 ...
颍泉区18978516656: php中用户权限的方法 - ?
子丰博富马: session 可以用 memcached 存储,配置方法可以在网上查.
颍泉区18978516656: php权限管理如何实现 - ?
子丰博富马: 我得做法是,用形如:修改文章,1,删除文章,1,新增文章,1 这样的字符串来保存权限值 读取后explode为数组,需要校验权限的时候,用 if($array["修改文章"]) 判断是否有权限.
颍泉区18978516656: PHP后台用户操作权限设置.不用模版的裸写方法. - ?
子丰博富马: .....设置权限id 每个用户都有自己的权限的id 每个权限id 对应相应的权限 加载页面前进行权限判断