2012-06-28 34 views
3

我想我的服務器上安裝此CAPTCHA腳本:簡單的PHP驗證碼錯誤:字體文件未找到

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

我已經uplaoded文件,並試圖運行演示。但是,CAPTCHA圖像不會像應該顯示的那樣顯示。

當我試圖直接打開CAPTCHA圖像,我得到這個錯誤低於

Fatal error: Uncaught exception 'Exception' with message 'Font file not found: ' in /home/website/public_html/simple-php-captcha/simple-php-captcha.php:125 Stack trace: #0 {main} thrown in /home/website/public_html/simple-php-captcha/simple-php-captcha.php on line 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' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 
    '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)]; 

我已檢查並且所有必需的文件都在該文件夾中。

有誰知道如何解決這個錯誤?

+0

做一個'echo($ font);'在行125之前 –

+0

嘿,歡迎來到Stack Overflow! =) –

+0

感謝您的歡迎。我試過$字體的回聲,它似乎是空的!你知道這可能是爲什麼嗎?我根本沒有修改腳本。我玩了一下和'dirname(__ FILE__)。 '/ times_new_yorker.ttf'似乎清空了字符串。我不熟悉PHP。 'dirname(__ FILE __)'做了什麼? – medical

回答

0

我剛剛發現,簡單的php captcha沒有與頁面緩存工作和異常「字體文件未找到」被拋出一些什麼是錯誤的。我確信那個具有CAPTCHA圖像的頁面沒有被緩存,問題就解決了。

在我的情況下,我有一個頁面/register/其中有一個CAPTCHA圖像。我正在使用W3 Total Cache爲我的WordPress網站做頁面緩存。

希望這會有所幫助。