年后不断在忙,更新比较慢,今天CMSYOU在这里与大家分享最近在实际项目中碰到的一个问题:Phpcms v9管理后台设置了默认注册会员积分和会员组,结果在前台用户注册的时候却出现的了用户组错乱的情况。这种情况一般不会出现,在给默认注册会员积分大过一定程度的时候才会出现。
Phpcms v9默认会员组,可以看出新手上路积分50、中级会员150分
Phpcms v9会员组设置,当设置新会员默认点数为100,当于第一个会员组(新手上路)积分时,前台注册会员组则会出现错误
根据排查,最后找到phpcms/modules/member/index.php第985行:
//如果超出用户组积分设置则为积分最高的用户组
if($point > max($grouppointlist)) {
$groupid = key($grouppointlist);
} else {
foreach ($grouppointlist as $k=>$v) {
if($point >= $v) {
$groupid = $tmp_k;
break;
}
$tmp_k = $k;
}
}
return $groupid;
其中的$tmp_k前后没有定义或用到,问题就在这里,修正代码如下:
//如果超出用户组积分设置则为积分最高的用户组
if($point > max($grouppointlist)) {
$groupid = key($grouppointlist);
} else {
foreach ($grouppointlist as $k=>$v) {
if($point >= $v) {
$groupid = $k;
break;
}
}
}
return $groupid;
截图记录如下:
Phpcms默认会员注册判断用户组出错的Bug修正方法
Phpcms v9这个Bug隐藏得比较深,只有在会员模块配置(位置:用户 > 会员管理 > 会员模块配置)时给到新会员默认点数超过一两个会员组的积分时才会出现。
希望CMSYOU的分享能给大家带来便利,希望能帮到碰到这一问题的朋友。最后,感谢大家关注Phpcms、关照CMSYOU团队!
点击加载更多