【问题标题】:Zend_Captcha_Image generates empty captcha :(Zend_Captcha_Image 生成空验证码:(
【发布时间】:2014-01-20 03:00:19
【问题描述】:

我在使用 Zend_Captcha_Image 时遇到了奇怪的问题。有时它会生成空验证码,只有线条和点,但没有文字:(

编辑:每 4-10 次网页浏览/图像刷新都会发生这种情况。

这只发生在一台服务器上。在另一个具有相同操作系统的情况下,它没有任何问题。

【问题讨论】:

  • 错误日志中有相关信息吗?你记录错误吗?将错误重定向到文件。

标签: php zend-framework captcha


【解决方案1】:

我刚刚在 PHP5 GD 或 Zend 或为 debian lenny8 编译的 php-gd 中发现了错误

这是 Zend/Captcha/Image.php 中的代码

$textbox = imageftbbox($fsize, 0, $font, $word);
$x = ($w - ($textbox[2] - $textbox[0])) / 2;
$y = ($h - ($textbox[7] - $textbox[1])) / 2;
imagefttext($img, $fsize, 0, $x, $y, $text_color, $font, $word);

当图像为空白时,会调用类似:

imagefttext(Resource, 30, 0, 1073741903.5, 45.5, 0, "/fonts/arial.ttf", "z9h8")

这很糟糕,因为 X 具有疯狂的值 1073741903.5。这是没有图像的,所以没有写任何文字。 所以我需要做的是,修复 Zend 代码,并在调用函数之前检查并修复 X ​​和 Y 值

我希望这能帮助其他人解决这个奇怪的错误。

【讨论】:

    【解决方案2】:

    比较 phpinfo() 的输出;并比较那里的所有扩展和设置。

    顺便说一句,我可以在那里看到图片:https://forum.esfcr.cz/registration.htm

    更新:错误日志中有任何相关信息吗?你记录错误吗?

    【讨论】:

    • 每 4-10 次查看都会发生这种情况。
    • @Michal Odd,如果它只是偶尔发生的话。也许你有一个损坏的字体文件?如果某些字体定义已损坏,则可能仅在 CAPTCHA 中出现某些字符时才会损坏...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 2010-11-04
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多