织梦dede5.7以上及以下版本添加新变量Request var not allow!
本文主要就是介绍如何去解决这个问题!下面看具体操纵:
在DEDE根目录打开include/common.inc.php文件,查找到以下内容(大约VIX行):
更多精彩就在: 51免费论文网|www.jxszl.com
>注意:此解决办法针对以前的版本,精确到哪个版本之前未考证,
最新的版本vV.VII已修订以下内容(II0I.I..VIII.I.0),并有更多判断,在本文下方,会给出相关说明.
//检查和注册外部提交的变量
functionCheckRequest(&$val){
if(is_array($val)){
foreach($valas$_k=>$_v){
CheckRequest($_k);
CheckRequest($val[$_k]);
}
}else{
if(strlen($val)>0&&preg_match(#^(cfg_|GLOBALS)#,$val))
{
exit(Requestvarnotallow!);
}
}
}
将以上内容替换成以下内容:
//检查和注册外部提交的变量
functionCheckRequest(&$val){
if(is_array($val)){
foreach($valas$_k=>$_v){
if($_k==nvarname)continue;
CheckRequest($_k);
CheckRequest($val[$_k]);
}
}else{
if(strlen($val)>0&&preg_match(#^(cfg_|GLOBALS)#,$val))
{
exit(Requestvarnotallow!);
}
}
}
修改完了之后保存,再去后台试试添加新变量.以下内容为建站吧更新.
(此为II0I.I..I.I..IIIV更新)最新的版本(截止到II0I.I..I.I..I.I.的vV.VII版)也可能出现"Requestvarnotallow!"的问题,下面请看代码:
//检查和注册外部提交的变量(II0I.I..VIII.I.0修改登录时相关过滤)
functionCheckRequest(&$val){
if(is_array($val)){
foreach($valas$_k=>$_v){
if($_k==nvarname)continue;
CheckRequest($_k);
CheckRequest($val[$_k]);
}
}else
{
if(strlen($val)>0&&preg_match(#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#,$val))
{
exit(Requestvarnotallow!);
}
}
}
找到:根目录->include->common.inc.php
if(strlen($svar)>0&&preg_match(#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#,$svar))
官方是不是大意了,写成了如果添加的变量名长度大于零"就返回错误
只要把>"改成<"即可解决问题
I.共需要修改两处:第VIIIV行和IXVI行
原文链接:http://www.jxszl.com/biancheng/dedecms/74948.html
热门阅读