discuz图片顺序混乱解决方案

yipeiwu_com7年前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常见数组排序方法小结

本文实例讲述了PHP常见数组排序方法。 一、数组操作的基本函数 数组的键名和值 array_values($arr); 获得数组的值 array_keys($arr); 获得数组的键名...

PHP 身份验证方面的函数

复制代码 代码如下:<?php // 计算身份证校验码,根据国家标准GB 11643-1999 function idcard_verify_number($idcard_base...

php批量删除数据库下指定前缀的表以prefix_为例

如何用php批量删除数据库下所有前缀为prefix_的表。 例子,统一删除前缀为“prefix_”的表。 <?php //设置数据库连接信息。数据库服务器地址,数据...

php 检查电子邮件函数(自写)

复制代码 代码如下: function is_valid_email_address($email){ $qtext = '[^//x0d//x22//x5c//x80-//xff]';...

自定义session存储机制避免会话保持问题

自定义session存储机制避免会话保持问题

PHP服务端session以文件的方式存储,当用户访问量过大时,session文件会非常多,而且当横向增加服务器后,session文件并不能同步,面临会话保持的问题。 有以下两种解决方案...