DEDECMS报错 Fatal error: Call to a member function GetInnerText()

织梦DEDECMS增加自定义图片字段后文章无法修改,以及调用图片地址出错的解决方法

在用织梦DEDECMS建网站时,经常需要灵活布局调用一些图片内容,而默认后台能调用的图片只有缩略图一个选项。因此,如果我们想在页面上调用更多的图片内容,就需要自己增加图片字段了。增加字段的方法为:网站后台》》核心》》频道模型》》内容模型管理》》普通文章》》字段管理》》添加新字段,这里仅仅是以文章模型为例,更具体的添加方法就不一一赘述了。本篇文章关注的焦点,在于添加自定义图片字段后,后台编辑文章报错及前台调用网址出错的问题。 首先是第一个问题: DEDECMS新增字段后,发布的文章无法修改报错Fatal error: Call to a member function GetInnerText() on string in XXXXX\include\customfields.func.php on line 539. 发布的文章无法编辑、无法修改,不显示。 DEDECMS报错 Fatal error: Call to a member function GetInnerText() 解决办法: 打开\include\customfields.func.php文件,找到539行: 把 $fvalue = trim($ntag->GetInnerText()); 替换成: $fvalue = ($ntag=="") ? trim($ntag) :trim($ntag->GetInnerText()); 问题解决! 然后是第二个问题: 用field调用前端显示的不是纯图片路径,含有li、a等前端标签。调用方法如下: 调用方法: {dede:field.字段名称/} 前端默认显示: 想要变成正常显示效果:/uploads/allimg/180330/a1.jpg 修改方法: 找到:/templets/system/channel_article_image.htm打开,内容为: \[field:text /\] 直接全部删除,只保留: [field:imgsrc/] 问题解决! 其实,如果不想那么麻烦,完全可以在增加字段的时候选择“图片(仅网址)”,这样增加的字段虽然在调用时不会有显示问题,但在后台操作时就需要粘贴现成的网址,不能直接上传图片,所以如果有现成网址的话可以推荐这种方式,免得改上面的代码。不过,如果想要一劳永逸的话,还是推荐改代码的方式,操作熟练的话也是几分钟的事情。

2020年11月24日 · 1 分钟 · 55 字 · guiqihong
验证码成功显示

织梦dede后台登陆一片空白和验证图片不显示的解决方案

由于特殊需要,服务器需要从Linux切换到Windows,切换系统前,在宝塔面板照例备份,分别是网站文件备份和数据库备份。然后装系统、装软件、一切就绪。之后,原封不动地把备份文件搬到硬盘上,建立数据库并导入数据。一切就是这么简单,输入域名一看,网站不管是首页、栏目页还是文章页都能正常打开,后台打开也没有问题,内心不免有些激动:原来网站搬家竟是如此简单! 很快,我就被泼了一盆凉水。在后台输入账户名和密码,以及验证码后,后台直接出现一片空白,没有任何提示文字。我以为是网速问题,先后刷新了两遍,又强制刷新了一遍,仍然还是固执的一片空白。于是,我开始在网上找解决方案,前后尝试了网友提供的三种不同解决方案,仍然无法解决问题。一时间,我陷入了困局,几近抓狂。 登陆织梦后台出现一片空白 最后,看到一个非常简单的方案,没想到通过这个方案最终解决了问题,现在分享给网友: 后台一片空白的关键在于没有任何提示代码,所以我们的思路是调出错误代码,才好有针对性地做出相应的修改。找到include目录下的common.inc.php文件,将如下代码修改: // error_reporting(E_ALL); error_reporting(E_ALL || ~E_NOTICE); 找到include目录下的common.inc.php文件 修改为: error_reporting(E_ALL); //error_reporting(E_ALL || ~E_NOTICE); 改好后刷新后台,一般就可以显示出报错信息(看下图所示),这个时候我们就可以根据报错提示,对症下药了。一般推荐将出现错误的文件直接用备份的文件替换掉。 此时登陆织梦后台会出现报错信息 好了,这下我能正常登入后台了。不过,今天可以说是风波不断,不知道是改变了一个什么文件,再次登陆后台时,验证码不能显示了。没有验证码,自然也不能顺利登陆,于是我又开始找解决方案。 这次比较顺利,按照以下步骤操作后,问题顺利解决: 第一步是登录自己的服务器或VPS。如何你的是虚拟空间,估计本地修改后再上传覆盖也行。下图是还没修改前的样子: 织梦后台登陆验证码不能显示 第二步打开data目录,用代码编辑软件打开common.inc.php文件,我用的是notepad++,千成别用记事本打开,我就是安装网站的时候用记事本修改了这个文件,所以后台就无法显示验证码了。 用代码编辑软件打开common.inc.php文件 第三步,也是关键一步,看右下角是不是有个UTF-8-BOM,如何带有BOM就是这个BOM的问题,然后点击软件上面的“编码——以UTF-8无BOM格式编码”,右下角UTF-8后面就没有BOM了,再点击保存。 编码——以UTF-8无BOM格式编码 第四步,刷新下你的网站后台,现在验证码就显示出来了。 验证码成功显示 经过分析,问题的关键是在编辑网站文件时用了记事本,导致网站编码出错。所以,我们在编辑网站文件时,一定尽量避免用记事本去修改,免得出错了还不知道是什么原因。

2019年4月23日 · 1 分钟 · 29 字 · guiqihong