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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[分享] 详解uchome官网补丁包20100106本质→助你轻松以非覆盖文件方式手动升级

[复制链接]
daydaydevelop 发表于 2010-1-26 18:28:21 | 显示全部楼层 |阅读模式
本帖最后由 daydaydevelop 于 2010-01-29 18:07 编辑

因为本站(http://u.cyzone.cn)的2.0二次开发,改动很多,不方便用官方补丁包升级,所以研究了下官网升级包,总结出补丁实际所修改的地方,这样就可以非覆盖方式打补丁了。
~转载请注明出处~梦飞湖(daydaydevelop)~
说明:本次官网升级补丁包20100106共修改六个文件!
1、source/space_index.php//修正去他人个人主页领取埋下的红包可能导致自己设置的红包丢失的问题
   找到→//红包道具
   原: $_SGLOBAL['db']->query('DELETE FROM '.tname('magicuselog')." WHERE uid = '$_SGLOBAL[supe_uid]' AND mid = 'gift'");
   替: $_SGLOBAL['db']->query('DELETE FROM '.tname('magicuselog')." WHERE uid = '$space[uid]' AND mid = 'gift'");

2、source/function_common.php//修正用户因时区设置导致领取特定任务奖励出现问题
   1)300行左右,找到→function updatetable
   原:if(is_array($set_value)) {
          $setsql .= $comma.'`'.$set_key.'`'.'='.$set_value[0];
      } else {
          $setsql .= $comma.'`'.$set_key.'`'.'=\''.$set_value.'\'';
      }
   替: $setsql .= $comma.'`'.$set_key.'`'.'=\''.$set_value.'\'';
   2)在function getreward里(1893行左右)
   原: global $_SGLOBAL, $_SCOOKIE;
   替: global $_SGLOBAL, $_SCOOKIE, $_SCONFIG;

   3)1950行左右,原: $today = sstrtotime(sgmdate('Y-m-d'));
   替: $today = sstrtotime(gmdate('Y-m-d', $_SGLOBAL['timestamp']+$_SCONFIG['timeoffset']*3600));
   
   4)1985行左右,原: $start = sstrtotime(sgmdate('Y-m-d H:00:00', $creditlog['starttime']));
   替: $start = sstrtotime(gmdate('Y-m-d H:00:00', $creditlog['starttime']+$_SCONFIG['timeoffset']*3600));

3、source/cp_profile.php//修正填写个人资料的时候,在没有填写姓名的时候不能提交的问题
   75行左右,找到→if(strlen($setarr['name']) < 4)
   原:if(strlen($setarr['name']) < 4)
   替:if($setarr['name'] && strlen($setarr['name']) < 4)

4、source/cp_friend.php//修正在部分服务器环境下会产生数据安全的问题
   找到→elseif($op == 'group') {
   再往下几行(385行左右)找到$multi = '';
   原: $multi = '';
   替: $multi = $wheresql = '';

5、api/uc.php//修正用户改名的时候分享、投票、活动不能改名的问题
   在function renameuser里找到→$_SGLOBAL['db']->query("UPDATE ".tname('album')." SET username='$new_username' WHERE username='$old_username'");
   在下面加以下三行
   $_SGLOBAL['db']->query("UPDATE ".tname('share')." SET username='$new_username' WHERE username='$old_username'");
   $_SGLOBAL['db']->query("UPDATE ".tname('poll')." SET username='$new_username' WHERE username='$old_username'");
   $_SGLOBAL['db']->query("UPDATE ".tname('event')." SET username='$new_username' WHERE username='$old_username'");

6、ver.php//版本号
   原:define('X_RELEASE', '20090825');
   替:define('X_RELEASE', '20100106');

明白了这些,不想以官方覆盖文件方式升级补丁的朋友们就可以手动修改这六个文件,无需担心升级补丁问题了!
ddqcw_2008 发表于 2010-2-8 22:45:05 | 显示全部楼层
回复

使用道具 举报

yes211 发表于 2010-2-8 23:15:49 | 显示全部楼层
写的还可以  呵呵
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 04:14 , Processed in 0.023069 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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