北京网站制作欢迎光临易企北京网络公司
您当前位置:易企北京网络公司 >> 网站制作 >> 浏览文章

dede后台添加新变量出现Request var not allow!解决办

文章标签:后台,添加,变量,量出,出现,解决 发布时间:2024年04月18日 浏览61

论坛上很多人都反馈说在后台添加新变量的时候会出现 "Request var not allow!" 的BUG错误.本文主要就是介绍如何去解决这个问题!下面看具体操纵:

在DEDE根目录打开 include/common.inc.php 文件,查找到以下内容(大约59行):

注意:此解决办法针对以前的版本,精确到哪个版本之前未考证,最新的版本v5.7已修订以下内容(2011.8.10),并有更多判断,在本文下方,会给出相关说明。

//检查和注册外部提交的变量
function CheckRequest(&$val) {
    if (is_array($val)) {
        foreach ($val as $_k=>$_v) {
            CheckRequest($_k);
            CheckRequest($val[$_k]);
        }
    } else{
        if( strlen($val)>0 && preg_match('#^(cfg_|GLOBALS)#',$val) )
        {
        exit('Request var not allow!');
        }
    }
}

将以上内容替换成以下内容:

//检查和注册外部提交的变量
function CheckRequest(&$val) {
    if (is_array($val)) {
        foreach ($val as $_k=>$_v) {
            if($_k == 'nvarname') continue;
            CheckRequest($_k);
            CheckRequest($val[$_k]);
        }
    } else{
        if( strlen($val)>0 && preg_match('#^(cfg_|GLOBALS)#',$val) )
        {
        exit('Request var not allow!');
        }
    }
}

修改完了之后保存,再去后台试试添加新变量.以上内容转自dede论坛,以下内容为北京网站建设更新。

(此为2011.11.24更新)最新的版本(截止到2011.11.11的v5.7版)也可能出现"Request var not allow!" 的问题,下面请看代码:

//检查和注册外部提交的变量   (2011.8.10 修改登录时相关过滤)
function CheckRequest(&$val) {
    if (is_array($val)) {
        foreach ($val as $_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('Request var not allow!');
        }
    }
}

我所做的修改是因为添加新变量使用了以cfg_开头的,所以导致出现"Request var not allow!" 的问题,新版的dedecms系统默认是限制了添加cfg_|GLOBALS|_GET|_POST|_COOKIE开头的变量的(^代表以后面的字符开头的字段),看上面的代码就非常清楚原因了啊

上一篇:没有了
下一篇:dede全局万能标签loop循环详解
点击数:  相关搜索:后台 添加 变量 量出 出现 解决