织梦dede5.7以上及以下版本添加新变量Request var not allow!

  很多朋友都反馈说在织梦dedecms后台添加新变量的时候会出现 “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!’);

  }

  }

  }

  修改完了之后保存,再去后台试试添加新变量.以下内容为建站吧更新。

  (此为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!’);

  }

  }

  }

  找到:根目录->include->common.inc.php

  if( strlen($svar)>0 && preg_match(‘#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#’,$svar) )

  官方是不是大意了,写成了“如果添加的变量名长度大于零”就返回错误

  只要把“>”改成“<”即可解决问题   一共需要修改两处:第74行和96行

☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
pbootcms模板网 » 织梦dede5.7以上及以下版本添加新变量Request var not allow!

Pbootcms模板网 提供优质的模板集合

立即查看 了解详情