Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

报告一个DZ 3.2中的BUG,以及我的修改代码

[复制链接]
chuyinet_com 发表于 2014-9-22 06:49:38 | 显示全部楼层 |阅读模式
本帖最后由 chuyinet_com 于 2014-9-22 06:51 编辑

从DZ X2升级到DZ X3.2,装了最新的补丁。发现网站有的帖子显示失败。这好一通debug。最后发现DZ在调用 位于function_core.php 中的 dunserialize($data)对从数据库中读出的序列化数据做反序列化时,不能正确的判断 \r\n 字符的长度。造成反序列化失败。谷歌了下,发现已经有人遇到同样的问题。下面是我修改后的代码:

  1. function dunserialize($data) {
  2. if(($ret = unserialize($data)) === false) {
  3. $data = str_replace("\r", "", $data);
  4. $data = preg_replace ( '!s:(\d+):"(.*?)";!se', '"s:".strlen("$2").":"$2";"', $data );
  5. $ret = unserialize(stripslashes($data));
  6. }
  7. return $ret;
  8. }
复制代码

第4,5行是我加的,修改完后一切正常。
wengongling 发表于 2014-9-22 20:16:39 | 显示全部楼层
显示失败是神马意思哇?
回复

使用道具 举报

 楼主| chuyinet_com 发表于 2014-9-23 02:12:17 | 显示全部楼层
就是页面显示了一半,剩下的半拉页面全没了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-2-25 22:24 , Processed in 0.064175 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表