织梦园模板网专注于织梦企业模板、DeDe整站模板、织梦Html5模板等织梦模板的下载,提供DEDE织梦模板相关服务。织梦园织梦模板交流群
用户名:
密码:
注册

织梦园,DEDE企业模板

织梦后台变量名不能为空并且必须为[a-z_]组成!

admin / 2017-11-02 / 收藏
官方7.5 的 0814 版。今天发现添加新变量的时候,首先出现: "Request var not allow!" 这个还不是重要的。这个问题解决以后,
接着又出现了:变量名不能为空并且必须为[a-z_]组成!
网上找了很多个解决方案,基本上都是一样的,说的是 include/common.inc.php 替换一段代码。但可能只适用以有的版本。总之没有成功。。。
话说,其实,问题不是出在Includ/common.inc.php
那是因为Includ/common.inc.php里面规定了。不充许创建cfg_开头的。那我们创建其它开头的就可以了。建议最好不要去修改那个配置文件,为了安全起见。
例如我的:cf_add 就是医院的地址,这样就可以了。下一个比如电话,QQ这些,你可以自定义。例如:yiyuan_tel
只要你模版调用的时候:医院地址:{dede:global.cf_add/} 记得填写正确就OK了
但是紧接着问题来了。其实你跟本走不到这一步,因为你添加了变量以后 会显示   变量名不能为空并且必须为[a-z_]组成!
其实你要先解决下面的问题,然后再回头添加变量就OK了。总之有点儿让人搞不清状况!
好吧。在网上找的时候我发现以前的老版本貌似都可以添加的哦。那就。。。下载个老版本的。打开  /dede/sys_info.php  
主要是这样一段话。
解决办法:
老版本的:
  1. //增加新变量
  2. else if($dopost=='add')
  3. {
  4.         if($vartype=='bool' && ($nvarvalue!='Y' && $nvarvalue!='N'))
  5.         {
  6.                 ShowMsg("布尔变量值必须为'Y'或'N'!","-1");
  7.                 exit();
  8.         }
  9.         if(trim($nvarname)=='' || eregi('[^a-z_]', $nvarname) )

新版本的:
  1. //增加新变量
  2. else if($dopost=='add')
  3. {
  4.     if($vartype=='bool' && ($nvarvalue!='Y' && $nvarvalue!='N'))
  5.     {
  6.         ShowMsg("布尔变量值必须为'Y'或'N'!","-1");
  7.         exit();
  8.     }
  9.     if(trim($nvarname)=='' || preg_match("#[^a-z_]#i", $nvarname))

对比发现问题以后,其实就是最后代码里面少了一个符号:^
  1. //增加新变量
  2. else if($dopost=='add')
  3. {
  4.     if($vartype=='bool' && ($nvarvalue!='Y' && $nvarvalue!='N'))
  5.     {
  6.         ShowMsg("布尔变量值必须为'Y'或'N'!","-1");
  7.         exit();
  8.     }
  9. if(trim($nvarname)=='' || eregi("#^[^a-z_]#i", $nvarname))

就是第九行这句话:if(trim($nvarname)=='' || eregi("#^[^a-z_]#i", $nvarname))
换成这句以后,保存,再回后台试一吧亲们。~~
收缩