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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

_checklowerlimit() 函数设置无用全局变量.可能导致异常

[复制链接]
mark35 发表于 2014-3-24 19:32:31 | 显示全部楼层 |阅读模式
本帖最后由 mark35 于 2014-3-24 19:35 编辑

upload/source/function/function_credit.php line22

  1. function _checklowerlimit($action, $uid = 0, $coef = 1, $fid = 0, $returnonly = 0) {
  2.     global $_G;

  3.     include_once libfile('class/credit');
  4.     $credit = & credit::instance();
  5.     $limit = $credit->lowerlimit($action, $uid, $coef, $fid);
  6.     if($returnonly) return $limit;
  7.     if($limit !== true) {
  8.         $GLOBALS['id'] = $limit;     // <--------- 设定了一个全局变量
  9.         $lowerlimit = is_array($action) && $action['extcredits'.$limit] ? abs($action['extcredits'.$limit]) + $_G['setting']['creditspolicy']['lowerlimit'][$limit] : $_G['setting']['creditspolicy']['lowerlimit'][$limit];
复制代码

设定$GLOBALS['id']这个全局变量有何用处? 在其他代码中没有找到。查看dz72代码
include/global.func.php line82

  1. function checklowerlimit($creditsarray, $coef = 1) {
  2.     if(is_array($creditsarray)) {
  3.         global $extcredits, $id;  // <----这儿搞出的全局变量
  4.         foreach($creditsarray as $id => $addcredits) {
  5.             $addcredits = $addcredits * $coef;
  6.             if($addcredits < 0 && ($GLOBALS['extcredits'.$id] < $extcredits[$id]['lowerlimit'] || (($GLOBALS['extcredits'.$id] + $addcredits) < $extcredits[$id]['lowerlimit']))) {
  7.                 showmessage('credits_policy_lowerlimit');
  8.             }
  9.         }
  10.     }
  11. }
复制代码

估计是程序员是在老版本代码上改写新版程序,看到 global $extcredits, $id; 这一行不知道也没仔细搜索$id这个全局变量在哪儿用到、有什么用。直接照搬的global显得偷懒,干脆就直接赋值给$GLOBLS吧
这样随意赋值全局变量并且使用的是最常见的键名,如果在其他文件中发生id冲突那么是极难排查的

让故事继续 发表于 2014-3-25 12:11:59 | 显示全部楼层
楼主有心了 不过DZ目前基本没人管了吧
回复

使用道具 举报

 楼主| mark35 发表于 2014-3-25 18:52:27 | 显示全部楼层
让故事继续 发表于 2014-3-25 12:11
楼主有心了 不过DZ目前基本没人管了吧

在微薄微信冲击下论坛模式将会回归价值取向。而高大上的X系列将会被无情淘汰,倒是快速小巧7.2的存在价值还大些
回复

使用道具 举报

 楼主| mark35 发表于 2014-3-25 21:23:03 | 显示全部楼层

没下X3.1,看的X3的代码。不会有那位程序员这么有精力发现了此处吧~
回复

使用道具 举报

枯心树 发表于 2014-3-26 00:40:27 | 显示全部楼层
mark35 发表于 2014-3-25 21:23
没下X3.1,看的X3的代码。不会有那位程序员这么有精力发现了此处吧~

果然细心。。。
回复

使用道具 举报

让故事继续 发表于 2014-3-27 00:48:00 | 显示全部楼层
mark35 发表于 2014-3-25 18:52
在微薄微信冲击下论坛模式将会回归价值取向。而高大上的X系列将会被无情淘汰,倒是快速小巧7.2的存在价值 ...

戴志康已经从腾讯离职 discuz创始人
回复

使用道具 举报

 楼主| mark35 发表于 2014-3-27 10:06:34 | 显示全部楼层
让故事继续 发表于 2014-3-27 00:48
戴志康已经从腾讯离职 discuz创始人

dz对tx已经没啥大价值了。前两天不是说tx连微薄都要放弃么
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-12 01:16 , Processed in 0.028424 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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