2017-06-15 117 views
1

我試圖做一個驗證碼圖像渲染隨機文本(看看我的$_SESSION["captcha"])。沒有正確渲染我的圖像

它使用WAMP在本地主機上完美工作,但在我的網站上,它只顯示透明的64x20圖像,沒有文字,沒有任何內容。

我有一個錯誤500之前,我安裝了php5-gd +重新啓動Apache,也許我錯過了什麼安裝?

我無法訪問我的(錯誤)日誌。

這裏是我的代碼:

<?php 

session_start(); 

$_SESSION["captcha"] = mt_rand(100, 999); 
$img = imagecreatetruecolor(64, 20); 
$font = "Inversionz.otf"; 

imagealphablending($img, true); 
imagesavealpha($img, true); 

imagefill($img, 0, 0, 0x7fff0000); 
$textcolor = imagecolorallocate($img, 0, 0, 0); 

imagettftext($img, 27, 0, 0, 20, $textcolor, $font, $_SESSION["captcha"]); 

header("Content-type:image/png"); 
imagepng($img); 
imagedestroy($img); 

?> 

我的字體(Inversionz.otf)上傳。

+0

獲取訪問這些錯誤日誌,他們會告訴你到底是什麼問題。或者,也許你可以設置自己的日誌? 'ini_set(「log_errors」,1); ini_set(「error_log」,「/tmp/php-error.log」); error_log(「你好,錯誤!」);'你已經知道你的代碼有效,所以人們不得不大肆猜測它沒有錯誤日誌的環境出了什麼問題。我的猜測是字體丟失。 – mkaatman

+0

@mkaatman字體不會丟失,正如我所說,我可以通過在我的瀏覽器中訪問它來下載它。我添加了你的代碼並沒有發生任何事情(沒有創建文件夾/沒有顯示錯誤)。 –

+0

只是踢,本地主機如果你改變字體名稱爲無效,行爲是否匹配? PHP版本是一樣的嗎?你可以安裝一些東西,但你無法訪問日誌,這太瘋狂了。 – mkaatman

回答

1

好的,你讓我去找那個字體並在本地運行。 :)

我有您在,直到同樣的錯誤......

擊鼓聲請。

我在路徑中添加了./。 $font = "./Inversionz.otf";

+0

Omg大聲笑..非常感謝您的時間和你的幫助! –

+0

沒問題。很高興它的工作。 – mkaatman