爱克软件园:安全、高速、放心的专业下载站!

已收录|爱克资讯|软件分类|下载排行|最近更新

当前位置:首页游戏攻略攻略秘籍 → 织梦管理员之家,织梦cms如何建站

织梦管理员之家,织梦cms如何建站

时间:2023/07/02 09:38:00人气:作者:本站作者我要评论

大家好,如果您还对织梦管理员之家不太了解,没有关系,今天就由本站为大家分享织梦管理员之家的知识,包括织梦cms如何建站的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

检验用户是否有权使用某功的织梦函数TestPurview

函数TestPurview($n)虽然,看上去只是一个相对比较简单的函数,但是这个函数是非常非常重要的,试想一启侍下如果一个系统中没有检验某个用

户是否有权限操作某些功能的话,那么,这个系统一定非常危险,因为,随便一个人都可以操作某个功能,例如,进入后台,删除栏目,删除数据库等,就如同一个

家四周都没有墙一样,随便什么人都可以进入,这样的家完全就是公共场合,完全没有什么安全可言,一个系统也是如此。

所以,检测系统函数就比较重要了,当然,光这个一个函数还不够,不光要检验用户的使用权限,还要检验用户密码,是不是管理员,甚至是用户登录ip等,都要检验一下,这样才可以称得上安全的系统。

本函数在“管理员登陆类”userlogin.class.php里面的第一个函数就是它,返回的值是true或false,若有权限则返回trure否则返回false。

通过教程“织梦中cookie和session的应用”我们知道了,当我们登录后台后,织梦系统会把登录的用户信息写入session里面,并把session存放在/data/session文件夹里面。

因为不同的用户登录后台,产生的session是不一样的,我就在后台注册一个发布员,用户名为fby。并且,在后台定义“信息发布员”的权限如下图所示。

登录/注册后可看大图

我整理了一下“信息发布员”的权限如下:

列出授权栏目(t_AccList)

发布授权文档(a_AccNew)

列出授权文档(a_AccList)

列出我发布的文档(a_MyList)

修改我发布的文档(a_MyEdit)

删除我发布的文档(a_MyDel)

更改个人密码(sys_MdPwd)

评论管理(sys_Feedback)

管理我的上传(sys_MyUpload)

当我用fby用户名登录后,在data/session/文件夹里面,生成一个名为sess_3vtlqpg0pnlmc63pd5ai86gl16的session。这个session里面的内容如下所示。

securimage_code_value|s:4:"npll";

dede_admin_id|s:1:"8";

dede_admin_type|s:1:"1";

dede_admin_channel|s:0:"";

dede_admin_name|s:3:"fby";

<fontcolor="Blue">dede_admin_purview|s:107:"t_AccList

a_AccNewa_AccLista_MyLista_MyEdita_MyDelsys_MdPwdsys_Feedback

sys_MyUploadplus_留言簿模块";</font>

dede_admin_style|s:10:"newdedecms";

复制代码

如果我们以超级管理员,也就是最高级别的身份登录后台后,我们同样得到类似的如下内容。

securimage_code_value|s:4:"2gsf";

dede_admin_id|s:1:"1";

dede_admin_type|s:2:"10";

dede_admin_channel|s:1:"0";

dede_admin_name|s:5:"admin";

<fontcolor="Blue">dede_admin_purview|s:15:"admin_AllowAll";<如旁游/font>

dede_admin_style|s:10:"newdedecms";

复制代码

当登录后,这些是如何生成的?这个我们在上面提到了,以前的教程已经详细讲解了,其实,就是通过“管渣销理员登陆类”userlogin.class.php里面的函数来实现的,当然,不只是这个文件。

我们分析上面这些,完全就是为了函数TestPurview($n)作准备的,好了,现在我们来分析一下这个用户权限检验函数。

函数:

functionTestPurview($n)

{

$rs=FALSE;

$purview=$GLOBALS['cuserLogin']->getPurview();

if(preg_match('/admin_AllowAll/i',$purview))

{

returnTRUE;

}

if($n=='')

{

returnTRUE;

}

if(!isset($GLOBALS['groupRanks']))

{

$GLOBALS['groupRanks']=explode('',$purview);

}

$ns=explode(',',$n);

foreach($nsas$n)

{

//只要找到一个匹配的权限,即可认为用户有权访问此页面

if($n=='')

{

continue;

}

if(in_array($n,$GLOBALS['groupRanks']))

{

$rs=TRUE;break;

}

}

return$rs;

}

复制代码

通过getPurview()方法,我们从session得到了dede_admin_purview里面的值,因

为,$GLOBALS['cuserLogin']是实例化“登录类”的对像,而这个登录类的构造函数,在我们实例化时,已经把session里面的值赋

给了$this->userPurview,代码如下所示。

$this->userID=$_SESSION[$this->keepUserIDTag];

$this->userType=$_SESSION[$this->keepUserTypeTag];

$this->userChannel=$_SESSION[$this->keepUserChannelTag];

$this->userName=$_SESSION[$this->keepUserNameTag];

$this->userPurview=$_SESSION[$this->keepUserPurviewTag];

$this->adminStyle=$_SESSION[$this->keepAdminStyleTag];

复制代码

从上面代码我们就不难发现$this->userPurview=$_SESSION['dede_admin_purview'],即

t_AccLista_AccNewa_AccLista_MyLista_MyEdita_MyDelsys_MdPwd

sys_Feedbacksys_MyUploadplus_留言簿模块这些值,明白了这一点,这个TestPurview($n)就简单多了。

1、条件判断:

if(preg_match('/admin_AllowAll/i',$purview))

{

returnTRUE;

}

复制代码

如果我们用的是管理员登录,那么,$_SESSION['dede_admin_purview']的值等于admin_AllowAll,返回true,所以,这句代码就是判断是不是管理登录。

2、条件判断

if($n=='')

{

returnTRUE;

}

复制代码

若参数为空,直接返回true,也就是说,只要不提供功能参数,就认为是可以操作的,所以,这一点要注意了,如果你不小心,忘记写参数,那么,很可能本想过虑掉的用户结果没有过虑掉,这是非常危险的,所以,这个最好有个提示,有个对话框,这样可以提醒管理员。

3、把登录的后台的用户的权限,例如,本例子中的“信息发布员”权限$_SESSION['dede_admin_purview'],转换成数组存放到全局变量$GLOBALS['groupRanks']里面,以备下面之用。

if(!isset($GLOBALS['groupRanks']))

{

$GLOBALS['groupRanks']=explode('',$purview);

}

复制代码

4、把功能参数转换成数组:$ns=explode(',',$n);

5、遍历:foreach($nsas

$n),就是把传递过来的功能参数,通过in_array($n,$GLOBALS['groupRanks'])这个函数进行对比,看一下$n里面的有

没有存功能在数组$_SESSION['dede_admin_purview']里面。例如:本例子信息发布员的权限在上我们已经知道了

有:t_AccLista_AccNewa_AccLista_MyLista_MyEdita_MyDelsys_MdPwd

sys_Feedbacksys_MyUploadplus_留言簿模块这些值。

如果$n是:a_AccNew,t_New,经过上面一个遍历,我们发现,其中a_AccNew在数

组$GLOBALS['groupRanks'],函数立马跳出来,返回一个true,也就是说织梦的这个函数,只要$n里面有一个是

与$GLOBALS['groupRanks']里面的值一样,

就可以操作这个页面。而不需要全部都在$GLOBALS['groupRanks']里面才可以操作这个页面。

当然,你可以根据自己需要,直接严格匹配,只有全部都在登录用户的权限里面才可以操作页面。这个功能也简单,只要作如下更改:

if(!in_array($n,$GLOBALS['groupRanks']))

{

$rs=FALSE;break;

}

复制代码

也就是把$n参数里面的值判断一下,只要有一个不在登录用户的权限里面,就返回false,退出操作。

织梦cms的rss怎么做成全站输出

没研究过织梦的RSS全站输出,织梦其他方面的问题可以到百度上搜索织梦管悉耐判睁改理员之家,亩庆里面有不少织梦教程。

织梦的采集功能插件,具体是什么功能

插件很简单的,就那么几个功能菜单,每项功能都有详细的描述,你看看就明白了,如果哪里不明白和他们的客服联系,织梦方面的问题可以到织梦轮扒管理员逗轿之家找腊指昌找

织梦cms如何建站

购买域名和php+mysql空间互相解析绑定

设置好mysql数据库账卖做号密码

将dedecms上传到服务器中,链配举然后一路安装就可棚碧以建立站点了

织梦管理员之家的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于织梦cms如何建站、织梦管理员之家的信息别忘了在本站进行查找哦。

相关文章

  • 原神托马值得培养吗 角色培养建议

    原神托马是一个全新的四星角色,这个角色对于不少玩家来说比价困惑,不知道到底厉害吗,今天小编就来给大家分析一下托马的强度,还不清楚的玩家赶紧来看看吧。..
  • 游戏王决斗链接沉默之剑预组怎么样

    游戏王决斗链接近日推出了全新的预组构筑,不少玩家非常担心它的强度。那么接下来就请和小编一起看看它的全卡表吧,到时候玩家就知道这套预组的强度啦。..

关于爱克软件园 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2022 IKDOWN.COM 【爱克软件园】 版权所有