На картинке капча случайным образом отображается пустая капча.Примерно 4 из 10 попыток.
Я уже обнаружил проблему, и сообщение на форуме Zend предлагает Единственное исправление - это редактирование кода Zend Framework.
Есть ли способ исправить это без редактирования кода ZF?Почему Zend не исправил это в выпусках с тех пор, я смотрю в журнале изменений, но ничего с этим не связано?
$w = $this->getWidth();
$h = $this->getHeight();
$fsize = $this->getFontSize();
$img_file = $this->getImgDir() . $id . $this->getSuffix();
if(empty($this->_startImage)) {
$img = imagecreatetruecolor($w, $h);
} else {
$img = imagecreatefrompng($this->_startImage);
if(!$img) {
require_once 'Zend/Captcha/Exception.php';
throw new Zend_Captcha_Exception("Can not load start image");
}
$w = imagesx($img);
$h = imagesy($img);
}
$text_color = imagecolorallocate($img, 0, 0, 0);
$bg_color = imagecolorallocate($img, 255, 255, 255);
imagefilledrectangle($img, 0, 0, $w-1, $h-1, $bg_color);
$textbox = imageftbbox($fsize, 0, $font, $word);
$x = ($w - ($textbox[2] - $textbox[0])) / 2;
$y = ($h - ($textbox[7] - $textbox[1])) / 2;
// Edit: check not over 100
if($x > 50){ $x = 50;}
if($y > 100){ $y = 100;}
imagefttext($img, $fsize, 0, $x, $y, $text_color, $font, $word);
Отладка с помощью die () доказывает, что это так:
die("img=".$img ." fsize=".$fsize. " x=".$x ." y=".$y . " h=".$h );
img=Resource id #159 fsize=24 x=1073741923.5 y=41 h=50