ECMALL网站验证码不显示

一、确认问题:

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

打开后呈现:mt_rand(): max(0) is smaller than min(1) 可能 mt_rand(): max(24) is smaller than min(26) 等范例的错误,则可以采纳我们下面给出的办理要领。

 

二、问题原因:

在PHP 5.3.3版本以前,mt_rand($a, $b)传入的参数$a和$b二者没有数字巨细较量的限制,可是自5.3.4版本PHP开始,传入的参数必需满意$a <= $b,即第一个参数必需小于便是第二次参数。但按照今朝ECMall的代码,会呈现$a>$b 的环境,所以,我们要制止呈现这一环境。

 

三、办理问题:

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

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

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.*的版本,不消思量此办理要领。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8293.html