记述修复bug之织梦后台更改文档页面没有确定和重置按钮

一、出现错误

正常来说,打开文档的更改文档这个页面时,应该是完整的,如下:

但是过了几天,自己二次开发dede时突然出现了织梦后台更改文档页面没有确定和重置按钮,这个bug。

第一印象是上网搜索处理办法。但是网上实在找不到这个问题。所以开始琢磨自己解决。

二、查找错误

那么这个问题到底出在哪里呢?开始查找问题。首先想起来dede有些目录下有一个记录错误的文件叫做error_log。这个文件出现在很多目录,我所需要的就是找到我代码php文件出现错误的目录里面。比如我的是后台错误,所以肯定在dede目录下,然后php文件是archives_edit.php,定位到这个目录,找到error_log,打开看看是什么问题。

从上图可以看到,之前反复打开更改文档页面,导致反复出现全是fatal(致命)错误。所以按照这个错误提示,找到后面显示的文件include/customfields.func.php,然后找到第539行。可以看到:

那么问题又来了,这个到底出了什么情况呢?所以这个时候我们要用到php的调试函数var_dump。在这里我们var_dump上面538行的变量试试是什么问题,代码修改如下:

然后在浏览器里回到织梦后台页面,刷新页面,重新找到更改文档这个页面。这个时候在最下面没有确定和重置按钮的空白处多出来一行字符:

这个 string(0) ""   说明这个var_dump的$ntag变量是空值。这个是为什么呢?实际上是因为我在发布文档的时候,因为是做测试的,所以就没有添加产品图片这个的封面图。所以我们也能看到,变成空白的地方是从产品图片开始的,往上的上架时间呀什么的,都是ok的。

三、修复错误

这个时候知道了问题所在,最简单的处理方法就是以后发文档的时候添加产品图片,这样在更改文档的时候也就不会出现这个问题了。不过现在好不容易找到问题了,那么我就来自己给它修复了吧。

实际上,出现问题是因为$ntag变量是空值,所以导致后面的代码没办法执行。那么最直接的方式就是我们写一个if判断,判断这个$ntag是不是空值。如果是,则return,如果不是则正常输出应该有的东西,比如输出后面的确定和重置按钮。这次代码修改为:

然后就这么运行一次dede后台的更改文档页面。突然发现这个页面变成了空白,再刷新试试,还是空白。这说明出问题了。那么问题出在哪了呢?变成空白说明没有输出内容,肯定与return这个返回语言有关系了。所以这个地方需要改动。

怎么改呢?

不知道。

不知道的话只能抄了。那就看看上面图中第534行的代码,不用return,直接让$fvalue返回空试试。

最后这次修改实现了最初的目的,修复了这个bug。

所以这就是整个php修复bug的过程。

猜你喜欢

转载自blog.csdn.net/yumon321/article/details/82716301