返回列表 发帖
把viewthread.php的源程序帖出来,找找原因

TOP

虽然PHP不常用,但是懂还是懂的。

下了Discuz5.5版的论坛,对它的源代码再结合你出现的问题进行了反向分析。
先按“下载次数”这个关键字利用多重文件查找,找到在misc.lang.php里有'attach_downloads' => '下载次数',
接着再按attch_downloads多重文件查找,在discuzcode.func.php里找到,引用处。

再在当前页面点鼠标右健--》“查看源文件”,找到正确显示图片的那段HTML文本,以<img src="attachment.php?aid= 为关键字,对代码多重文件查找,也在discuzcode.func.php文件找到,而且下一个点同上一个点相隔只有十几行。先确定了出现该问题分叉的位置就好办了。



看代码分析,当$attach['attachimg']数组变量的值为1(或True)时,能正确显示图片,当它的值为0(或false)时,它不能正确显示图片。接下来再对$attach['attachimg']的赋值关系进行查找。



从图上看出$attach['attachimg']由后面一个表达式的值决定,组成该表达式的变量有$showimages,$attachimgpost,$attach['ismage'],$attch['readperm'],$readaccess
一般一个高水平的程序员对于他所写程序的变量命名是很有讲究的,目的是让团队开发的其他人,或自己(过了一段时间)看这段代码时很快就能知道,该变量大概是干什么的,保存的是个什么值,这也是代码可读性的一个很重要的标准。我从这行代码中能够猜得到$showimages表示是否显示图片,$attchimgpost表示该图片是否已经上传,$attch['isimage']表示该附件是否是一个图片,$readaccess阅读权限,又查了下$attch['readperm']也是保存的阅读权限,前面三个变量估计没什么问题,问题出在后面两个变量上。估计图片出现的显示问题跟阅读权限有关。

所以还请咖啡自己先检查,上传文件时阅读权限设置的是什么,看看自己的个人资料设置里,是否有关于阅读权限的设置等等。网站管理员yt可能最近比较忙,还请谅解。这论坛是用的第三方的程序,也不是我们写的,不熟悉那是肯定的,功能这么齐全的一个论坛系统,在使用上都不能马上就能保证所有功能都会用,就更不要谈一下子就把所有的别人的程序都理解的很透彻。但是对于这个问题应该是可以解决的,利用真实环境的数据可以进行调试输出,很快就能判断问题的出处。

可能要等几天,不要着急啊!

TOP

返回列表