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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

购买扩展用户组的积分更新记录问题。

[复制链接]
iCAx 发表于 2014-7-2 10:40:29 | 显示全部楼层 |阅读模式
购买用户组程序中,有关积分更新记录的参数值设置不够严谨,导致查看管理后台 “工具-运行记录-扩展记录-积分变更” 页面,进行过滤时出现非预期结果。

程序路径:source/include/spacecp/spacecp_usergroup.php

第83行,对 $extgroupidsnew 赋值
  1. $extgroupidsnew = implode("\t", $extgroupidsarray);
复制代码


第97,98行,将 $extgroupidsnew  结果存入数据库及写入积分更新记录

  1. C::t('common_member')->update($_G['uid'], array('groupexpiry' => $groupexpirynew, 'extgroupids' => $extgroupidsnew));
  2.                                 updatemembercount($_G['uid'], array($creditstrans => "-$amount"), true, 'UGP', $extgroupidsnew);
复制代码

从上面的代码可以看出,$extgroupidsnew 是用户扩展用户组字段的新数值(字符串),而积分更新记录采用 $extgroupidsnew 的数据类型与设计思路不符合,虽然入库后可以得到假想中的结果。当用户购买扩展用户组时,如果已经拥有其他扩展用户组,非预期结果产生了。

例如用户拥有扩展用户组 18 ,想购买新的扩展用户组 21, 则对应的积分更新记录数据关联的编号为 18,而非预期的 21

建议修正第98行代码,将 $extgroupidsnew 替换为 $groupid$group['groupid']
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-3-13 08:13 , Processed in 0.021337 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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