织梦DedeCMS提示Error:Tag disabled:php的原因及解决办法
原因分析
1、cfg_disable_tags配置:DedeCMS的cfg_disable_tags
配置用于控制哪些模板标签无法被加载,所有支持的模板标签可以在系统目录下的“includetaglib”中找到,默认情况下,php标签是被禁用的,如果已经设置了禁用标签,模板中出现相应的标签则会出现提示“DedeCMS Error:Tag disabled:php!”。
2、cfg_disable_funs配置:cfg_disable_funs
是模板标签中禁用函数的配置,主要用于禁止在标签中执行PHP代码,默认禁用的函数包括phpinfo、eval、exec等危险函数,如果使用了这些禁用函数,也会导致错误提示。
3、安全考虑:官方出于安全考虑,默认将一些可能带来安全隐患的标签和函数禁用,以防止非法侵入和数据泄露。
解决办法
1、取消禁用php标签:登录网站后台,依次进入“系统基本设置” > “其他选项” > “模板引擎禁用标签”,找到php标签并删除,保存设置即可解决问题。
2、检查SQL语句:如果没有找到相关设置项,可以通过后台的“系统设置” > “SQL命令行工具”运行以下SQL语句来恢复默认设置:
INSERT INTOdede_sysconfig
(varname
,info
,groupid
,type
,value
) VALUES ('cfg_disable_funs', '模板引擎禁用PHP函数', 7, 'bstring', 'phpinfo,eval,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,file_put_contents'); INSERT INTOdede_sysconfig
(varname
,info
,groupid
,type
,value
) VALUES ('cfg_disable_tags', '模板引擎禁用标签', 7, 'bstring', 'php');
然后在“模板引擎禁用标签”中去掉php标签即可。
3、修改模板文件:如果问题仍然存在,可能是某些模板文件中包含了禁用的标签或函数,建议逐一检查模板文件,确保没有使用被禁用的标签和函数。
FAQs
1、Q1: 为什么DedeCMS会默认禁用php标签?
A1: DedeCMS默认禁用php标签是出于安全考虑,防止用户通过模板注入恶意代码,从而保护网站免受攻击。
2、Q2: 如果我不想禁用任何标签和函数,应该如何设置?
A2: 登录网站后台,进入“系统基本设置” > “其他选项”,在“模板引擎禁用标签”和“模板标签中禁用函数”中清空所有内容,然后保存设置即可。