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使用curl获取https请求的方法

本文实例讲述了php使用curl获取https请求的方法。分享给大家供大家参考。具体分析如下: 今日在做一个项目,需要curl获取第三方的API,对方的API是https方式的。 之前使...

php读取txt文件并将数据插入到数据库

今天测试一个功能,需要往数据库中插入一些原始数据,PM给了一个txt文件,如何快速的将这个txt文件的内容拆分为所要的数组,然后再插入到数据库中? serial_number.txt的...

探讨方法的重写(覆载)详解

复制代码 代码如下:<?php class Cart{  public function Cart(){   echo...

php 全局变量范围分析

复制代码 代码如下: <?php $a = 1 ; include 'b.inc' ; ?> 这里变量 $a 将会在包含文件 b.inc 中生效。但是,在用户自定义函数中,...

phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法

很多人在使用phpmailer发送邮件之后,都想知道对方是否阅读了邮件?通常来说,这个我们是无法知道的,那么有没有办法呢? 对于这个问题有一个简单的解决方法,我们知道,邮件内容可以以ht...