論壇上很多人都反饋說在后臺添加新變量的時候會出現(xiàn) "Request var not allow!" 的BUG錯誤.本文主要就是介紹如何去解決這個問題!下面看具體操縱:
在DEDE根目錄打開 include/common.inc.php 文件,查找到以下內(nèi)容(大約59行):
注意:此解決辦法針對以前的版本,精確到哪個版本之前未考證,最新的版本v5.7已修訂以下內(nèi)容(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!'); } } }
將以上內(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)容轉(zhuǎn)自dede論壇,以下內(nèi)容為北京網(wǎng)站建設更新。
(此為2011.11.24更新)最新的版本(截止到2011.11.11的v5.7版)也可能出現(xiàn)"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_開頭的,所以導致出現(xiàn)"Request var not allow!" 的問題,新版的dedecms系統(tǒng)默認是限制了添加cfg_|GLOBALS|_GET|_POST|_COOKIE開頭的變量的(^代表以后面的字符開頭的字段),看上面的代碼就非常清楚原因了啊
關鍵字:dede(3)
本站文章均有北京網(wǎng)站建設原創(chuàng),轉(zhuǎn)載請注明出處,文章地址:http://www.0hh0x.cn/jzzhishi/423.html