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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

ucenter1.6 seccode.class.php代码中mt_rand()未判断大小导致php错误

[复制链接]
mark35 发表于 2014-3-3 16:45:36 | 显示全部楼层 |阅读模式
本帖最后由 mark35 于 2014-3-3 17:07 编辑

日志中错误代码

  1. 2014/03/03 16:36:55 [error] 27932#0: *11905642 FastCGI sent in stderr: "PHP message: PHP Warning:  mt_rand(): max(11) is smaller than min(12) in /www/uc_server/lib/seccode.class.php on line 240" while reading response header from upstream, client: , server: [url]xiaozhong.biz[/url], request: "GET /uc_server/admin.php?m=seccode&seccodeauth=29b67b912kFav4ophdfvdbwA4&1618523580 HTTP/1.1",
复制代码


程序中代码 uc_server/lib/seccode.class.php

  1. $x = mt_rand( $font[0]['angle'] > 0 ? cos(deg2rad(90 - $font[0]['angle'])) * $font[0]['zheight'] : 1, $this->width - $widthtotal);
复制代码


解决办法:判断输入值大小

  1.         $v1 = $font[0]['angle'] > 0 ? cos(deg2rad(90 - $font[0]['angle'])) * $font[0]['zheight'] : 1;
  2.         $v2 = $this->width - $widthtotal;
  3.         $x = mt_rand(min($v1, $v2), max($v1, $v2));
  4.         unset($v1, $v2);
复制代码

bugx 发表于 2014-3-5 11:47:22 | 显示全部楼层
确实有问题的代码{:soso_e179:}
回复

使用道具 举报

guoysbest 发表于 2014-3-5 22:10:12 | 显示全部楼层
楼主不是一般的高手啊
回复

使用道具 举报

wngx99 发表于 2014-3-7 15:31:17 | 显示全部楼层
支持一下,收藏了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 14:41 , Processed in 0.031069 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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