2014-01-27 8 views
0

им получать эту ошибку на MozillaPHP капчи не работает должным образом

«Образ „* /form%20and%20its%20validation/New%20folder/captcha/captcha.php“ не может отображается, поскольку содержит ошибки ».

fonts.ttf находится в этой же папке.

и этот код ничего не показывает на хроме. что в этом коде не так?

я хочу, чтобы включить это в моей странице формы ..

$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); 

ответ

0

Это 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"); из вашего сценария, а затем повторите попытку.

Смежные вопросы