如何在DedeCMS中解决添加新变量时出现Request var not allow!的问题?
- 行业动态
- 2024-10-18
- 1
在DedeCMS中,如果添加新变量时出现“Request var not allow!”的提示,通常是因为在配置文件中没有正确设置允许的变量。要解决这个问题,请按照以下步骤操作:,,1. 打开DedeCMS的配置文件 config/config_global.php。,2. 在配置文件中找到 $cfg_allow_variable变量。,3. 将 $cfg_allow_variable的值设置为 'all',以允许所有变量。或者,根据需要设置特定的变量列表。,4. 保存并关闭配置文件。,5. 重新尝试添加新变量,问题应该已经解决。,,注意:在修改配置文件之前,请确保备份原始文件,以防万一出现问题可以恢复。
在DedeCMS中添加新变量时,如果遇到“Request var not allow!”的错误提示,通常是由于系统对某些特定命名的变量进行了限制,这种限制主要是为了防止反面代码注入或非规操作,要解决这个问题,可以通过修改DedeCMS的核心文件来实现。
需要修改DedeCMS根目录下的include/common.inc.php文件,在该文件中,找到以下内容:
//检查和注册外部提交的变量 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|_GET|_POST|_COOKIE)#',$val) ) { exit('Request var not allow!'); } } }
将其替换为:
//检查和注册外部提交的变量 function CheckRequest(&$val) { if (is_array($val)) { foreach ($val as $_k=>$_v) { if($_k == 'nvarname') continue; // 新增这一行,用于跳过以cfg_开头的变量 CheckRequest($_k); CheckRequest($val[$_k]); } } else { if( strlen($val)<0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$val) ) { exit('Request var not allow!'); } } }
通过上述修改,当添加的变量名以cfg_、GLOBALS、_GET、_POST或_COOKIE开头时,系统将不再抛出“Request var not allow!”的错误。
FAQs
Q1: 为什么会出现“Request var not allow!”的错误?
A1: 这个错误通常是由于DedeCMS对某些特定命名的变量进行了限制,以防止反面代码注入或非规操作,当添加的变量名以cfg_、GLOBALS、_GET、_POST或_COOKIE开头时,系统会抛出这个错误。
Q2: 修改include/common.inc.php文件是否会影响系统的安全性?
A2: 修改该文件主要是为了绕过DedeCMS对特定变量名的限制,以便能够正常添加新变量,只要确保添加的新变量不包含反面代码或非规操作,一般不会对系统的安全性造成影响,在进行任何修改之前,建议备份原始文件以防万一。
Q3: 如果我不想修改核心文件,还有其他解决方法吗?
A3: 除了修改核心文件外,还可以考虑使用其他CMS系统或框架,这些系统可能没有类似的限制或者提供了更灵活的配置选项来满足你的需求,也可以尝试联系DedeCMS的官方支持团队寻求帮助。
解决方案步骤 | 操作说明 |
1. 检查变量名 | 确保添加的新变量名符合DedeCMS的命名规范,通常变量名应该由字母、数字和下划线组成,且不能以数字开头。 |
2. 修改配置文件 | 进入DedeCMS的配置文件,通常是dede.xml,查找关于请求变量允许的设置。 |
3. 修改变量允许设置 | 找到类似于的配置行,确保新变量名被包含在允许列表中,如果不存在,可以添加一行配置。 |
4. 保存并重新启动 | 保存配置文件,并重启DedeCMS服务以应用新的配置。 |
5. 检查PHP配置 | 确保PHP配置文件(通常是php.ini)中的allow_url_include和allow_url_fopen设置允许所需的操作。 |
6. 检查访问权限 | 确保服务器文件系统的权限设置允许对该变量进行访问。 |
7. 更新模板文件 | 如果新变量是在模板文件中使用的,确保模板文件中的变量名与实际添加的变量名一致。 |
8. 清除缓存 | 清除DedeCMS的缓存文件,以确保新的配置和变量立即生效。 |
9. 检查安全设置 | 确保没有不必要的安全设置阻止了新变量的使用。 |
10. 咨询技术支持 | 如果以上步骤都不能解决问题,可以联系DedeCMS的技术支持寻求帮助。 |
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/344097.html