ECMall验证码问题

1、确认问题:php

输入下面这个地址:http://你的网址/index.php?app=captcha&876589486app

打开后出现:mt_rand(): max(0) is smaller than min(1) 或者 mt_rand(): max(24) is smaller than min(26) 等类型的错误,则能够采起咱们下面给出的解决方法。编辑器

 

2、问题缘由:this

在PHP 5.3.3版本之前,mt_rand($a, $b)传入的参数$a和$b两者没有数字大小比较的限制,可是自5.3.4版本PHP开始,传入的参数必须知足$a <= $b,即第一个参数必须小于等于第二次参数。但根据目前ECMall的代码,会出现$a>$b 的状况,因此,咱们要避免出现这一状况。方法

 

3、解决问题:总结

1)打开(注意:不要用记事本打开,要用DW等网页编辑器打开修改) app/captcha.app.php

$this->_captcha(80, 24);
改成
$this->_captcha(80, 26);co

2)打开 admin/app/captcha.app.php 

$this->_captcha(70, 20);
修改成:
$this->_captcha(70, 26);数字

3)打开 includes/libraries/captcha.lib.php错误

把274行中的
$x = mt_rand($font[0]['angle'] > 0 ? cos(deg2rad(90 - $font[0]['angle'])) * $font[0]['zheight'] : 1, $this->width - $widthtotal);
改成:
$x = mt_rand($font[0]['angle'] > 0 ? cos(deg2rad(90 - $font[0]['angle'])) * $font[0]['zheight'] : 0, $this->width - $widthtotal);版本

 

总结:由此能够看出,此种状况,通常只是在PHP5.3以上的版本才会出现,若是你的是PHP5.2.*的版本,不用考虑此解决方法。

相关文章
相关标签/搜索