simple-php-captcha错误:找不到字体文件

时间:2012-06-28 16:28:27

标签: php captcha

我正在尝试在我的服务器上安装此CAPTCHA脚本:

http://www.abeautifulsite.net/blog/2011/01/a-simple-php-captcha-script/

我已将文件上传并试图运行该演示。但是,CAPTCHA图像不会显示。

当我尝试直接打开CAPTCHA图像时,我收到此错误

  

致命错误:带有消息'字体文件的未捕获异常'异常'   找不到:'in   /home/website/public_html/simple-php-captcha/simple-php-captcha.php:125   堆栈跟踪:#0 {main}被抛入   /home/website/public_html/simple-php-captcha/simple-php-captcha.php on   第125行

以下代码:

Line 125: if( !file_exists($font) ) throw new Exception('Font file not found: ' . $font);

字体文件路径在代码中设置:

$captcha_config = array(
    'code' => '',
    'min_length' => 5,
    'max_length' => 5,
    'png_backgrounds' => array(dirname(__FILE__) . '/default.png'),
    'fonts' => array(dirname(__FILE__) . '/times_new_yorker.ttf'),
    'characters' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
    'min_font_size' => 24,
    'max_font_size' => 30,
    'color' => '#000',
    'angle_min' => 0,
    'angle_max' => 15,
    'shadow' => true,
    'shadow_color' => '#CCC',
    'shadow_offset_x' => -2,
    'shadow_offset_y' => 2
);

$font = $captcha_config['fonts'][rand(0, count($captcha_config['fonts']) - 1)];

我已检查过,所有必需的文件都在文件夹中。

有谁知道如何修复此错误?

1 个答案:

答案 0 :(得分:0)

我刚刚发现简单的php验证码不能用于页面缓存,并且“找不到字体文件”的异常会被错误地抛出。我确保其上没有CAPTCHA图像的页面没有缓存,问题也解决了。

在我的特定情况下,我有一个页面/register/,它有一个CAPTCHA图像。我正在使用W3 Total Cache为我的WordPress网站进行页面缓存。

希望这有帮助。