2013-02-02 71 views
1

所以我想做一個驗證碼形式爲我的登記表,我不知道發生了什麼錯誤的,因爲每當我打開我看到顯示的圖像的網頁時的網址圖像沒有找到(我會張貼圖片,但我不能,因爲這是我的第一個問題)。GD驗證碼安全表單來的空白

我不知道我在做什麼錯的,因爲我是跟隨教程,因爲我是做它,它似乎爲他們工作。此外,沒有錯誤顯示,所以我不知道什麼是錯的。我的代碼是在這裏:

<?php 
session_start(); 
header('Content-type: image/jpeg'); 

$text = 4539; 
$font_size = 4; 
$image_height = 40; 
$image_width = 200; 
$image = imagecreate($image_width, $image_height); 
imagecolorallocate($image, 255, 255, 255); 
$font_colour = imagecolorallocate($image, 0, 0, 0); 
// Set the enviroment variable for GD 
putenv('GDFONTPATH=' . realpath('.')); 

// Name the font to be used (note the lack of the .ttf extension) 
$font = 'font'; 
imagettftext($image, 0, 15, 30, $font_colour, $font, $text); 
?> 

另外,$文本變量將被設置爲隨機當我知道代碼工作,該值是靜態的測試目的。我將不勝感激任何幫助。在此先感謝

+1

試評這一行:'標題(「內容類型:image/JPEG」);',看看是什麼錯誤PHP顯示你的。還請確保您的TTF字體文件存在,我不認爲缺乏.ttf擴展名是 – dimaninc

+0

嘗試也是一個好主意'$文字=「4539」;'(其定義爲** **字符串) – hek2mgl

+0

所以我嘗試都已經說了什麼,並註釋掉「頭」給了我一個錯誤,告訴我,我錯過了在imagettftext()函數,但解決這個後一個參數圖片仍然出現就好像文件路徑的形象是錯誤的 – CrossGuard

回答

1

你需要輸出的圖像瀏覽器將文本添加到它後:

imagettftext($image, 0, 15, 30, $font_colour, $font, $text); 
imagepng($image); 
imagedestroy($image); 

的破壞可能不會嚴格需要的PHP進程退出劇本完成後,但examples有它,所以我包括它。

此外,您可以使用imagepng(),imagegif()imagejpeg()來選擇png,gif和jpeg圖像格式。 PNG格式應該在這裏很好。

+0

也不管用,我試過了。但我發現了另一種創建驗證碼錶單的方法,所以現在我的問題是無關緊要的。儘管謝謝你的幫助。 – CrossGuard

+0

嘗試使用reCAPTCHA。它非常簡單,不需要GD庫。 請參閱:https://developers.google.com/recaptcha/docs/php –