discuz图片顺序混乱解决方案

yipeiwu_com6年前PHP代码库

说明

discuz在发表帖子的时候,添加多张图片,然后直接发表帖子,图片顺序有时候会乱掉
即使上传图片窗口中图片顺序正确,发布之后还是会乱掉

分析

看url,程序代码中看不出什么
将图片名改为序号上传,顺序乱了,记下帖子中乱掉的图片顺序为:76123458
然后在数据库找到bbs_forum_attachment_1表,发现默认的顺序也为此:

竟然也不按aid排序,有可能取的时候就直接取了没有order by
找到直接操作此表的php:source\class\table\table_forum_attachment_n.php
通过writelog('文件名','log')方法,发现,每刷新一次帖子,fetch_all_by_id,此方法就执行一次
原来查看帖子的时候,没有插入到帖子中的附件地址是每次都要从数据库读的

解决

修改fetch_all_by_id方法的传入默认参数:order_by='aid'

刷新刚才图片顺序乱掉的帖子,发现顺序正常了

以上就是关于discuz的修改的全部内容了,希望对大家能够有所帮助。

相关文章

PHP EOT定界符的使用详解

结束标识符必须从行的第一列开始。同样,标识符也必须遵循 PHP 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。 警告 很重要的一点必须指出,结束标识...

php横向重复区域显示二法

方法一. 注意这里有一个预先定义的图片记录集rsmpic 要横向重复的就是图片,请根据你的情况改为你的记录集名称.整齐地将横向重复内容放在一个表格内 <table width="1...

PHP错误和异常处理功能模块示例

本文实例讲述了PHP错误和异常处理功能模块。分享给大家供大家参考,具体如下: 一、错误类型和基本的调试方法 PHP程序的错误发生一般归属于下列三个领域: 语法错误: 语法错误最常见,并且...

php 数组排序 array_multisort与uasort的区别

Example:(简练) uasort($arr,create_function('$a, $b','return $a[\'line_num\']<$b[\'line_num\'...

PHP中fwrite与file_put_contents性能测试代码

function microtimeFloat() {    list($usec,$sec) = explode(" ", microtime());&n...