簡體   English   中英

PHP的驗證碼無法正常工作

[英]php captcha is not working properly

即時通訊在Mozilla上收到此錯誤

“由於包含錯誤,因此無法顯示圖像“ * /form%20and%20its%20validation/New%20folder/captcha/captcha.php”。

fonts.ttf在同一文件夾中。

這段代碼在chrome上什么也沒有顯示。 這段代碼有什么問題?

我想將其包含在我的表單頁面中。

$rnum='';

//generating random number
$rnum = rand(100000,9999999);

//creating image with size 300*60
$imgo = imagecreatetruecolor(300,60);

$white = imagecolorallocate($imgo, 255, 255, 255);
$grey = imagecolorallocate($imgo, 128, 128, 128);
$red = imagecolorallocate($imgo, 200, 100,90);
$black = imagecolorallocate($imgo, 0, 0, 0);

imagefilledrectangle($imgo, 0, 0, 200, 35, $black);

//getting font  

$cfont= 'font.ttf'; 

imagettftext($imgo, 35, 0, 22, 24, $red, $cfont, $rnum);

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

這是99%,因為腳本中的錯誤也會打印到瀏覽器中。

您可以捕獲錯誤並打印它而不是損壞的圖像:

error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
ini_set('xmlrpc_errors', true);
ob_start();
$rnum='';

//generating random number
$rnum = rand(100000,9999999);

//creating image with size 300*60
$imgo = imagecreatetruecolor(300,60);

$white = imagecolorallocate($imgo, 255, 255, 255);
$grey = imagecolorallocate($imgo, 128, 128, 128);
$red = imagecolorallocate($imgo, 200, 100,90);
$black = imagecolorallocate($imgo, 0, 0, 0);

imagefilledrectangle($imgo, 0, 0, 200, 35, $black);

//getting font  

$cfont= 'font.ttf'; 

imagettftext($imgo, 35, 0, 22, 24, $red, $cfont, $rnum);
$errors = ob_get_clean();
ob_end();
if ($errors) {
    echo $errors;
} else {
    header ("Content-type: image/png");
    imagepng($imgo);
}

imagedestroy($imgo);

如果它不起作用或沒有幫助,則可以簡單地刪除header ("Content-type: image/png"); 從您的腳本中,然后再試一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM