学习NO.1 发表于 2016-8-16 11:49:55

DISCUZ积分交易系统积分活动异常BUG修复方法

今天道勤主机小编我在处理售后问题时,遇到一位php免备案空间客户向小编我反映discuz程序有一个bug,就是使用积分进行交易,出售主题的时候购买主题的一方扣除的积分是正常的,但是出售主题的一方却能够得到两倍的积分。经过小编我亲自测试,确实是存在两倍积分的bug问题。于是小编我尝试通过修改源码的方法来解决此bug,经过反复的尝试终于修复了这个问题,其解决方法如下:首先找到与此问题相关的misc.php文件,这个文件就在网站根目录下,找到后用网页编辑工具将其打开,查找如下一段函数:if($updateauthor) {
updatecredits($thread['authorid'], array($creditstransextra => $thread['netprice']));
$db->query("UPDATE {$tablepre}members SET extcredits$creditstransextra
=extcredits$creditstransextra+$thread WHERE uid='$thread'");
}动源码的站长朋友可以看出重代码中有代码存在重复执行的问题,所以只要删除重复执行的代码就可以解决此问题了。删除如下这一段代码:$db->query("UPDATE {$tablepre}members SET extcredits$creditstransextra=extcredits$creditstransextra+$thread WHERE uid='$thread'");

一般dz程序出现bug的话,官网很快会给出补丁文件,所以遇到同样问题的站长朋友可以去官网下载补丁解决此问题,但是考虑到可能有些站长比较着急或者找不到补丁文件,特此将这个bug的解决方法介绍给大家。
页: [1]
查看完整版本: DISCUZ积分交易系统积分活动异常BUG修复方法