POST TIME:2019-09-30 17:44
很多朋友都反饋說在后臺添加新變量的時(shí)候會(huì)出現(xiàn) "Request var not allow!" 的BUG錯(cuò)誤.本文主要就是介紹如何去解決這個(gè)問題!下面看具體操縱:
在DEDE根目錄打開 include/common.inc.php 文件,查找到以下內(nèi)容(大約59行):
注意:此解決辦法針對以前的版本,精確到哪個(gè)版本之前未考證,最新的版本v5.7已修訂以下內(nèi)容(2011.8.10),并有更多判斷,在本文下方,會(huì)給出相關(guān)說明。
//檢查和注冊外部提交的變量
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!');
}
}
}
將以上內(nèi)容替換成以下內(nèi)容:
//檢查和注冊外部提交的變量
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!');
}
}
}
修改完了之后保存,再去后臺試試添加新變量.以下內(nèi)容為建站吧更新。
(此為2011.11.24更新)最新的版本(截止到2011.11.11的v5.7版)也可能出現(xiàn)"Request var not allow!" 的問題,下面請看代碼:
//檢查和注冊外部提交的變量 (2011.8.10 修改登錄時(shí)相關(guān)過濾)
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) )
官方是不是大意了,寫成了“如果添加的變量名長度大于零”就返回錯(cuò)誤
只要把“>”改成“<”即可解決問題
一共需要修改兩處:第74行和96行