php captcha无法正常工作

时间:2014-01-27 13:39:50

标签: php

我在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);

1 个答案:

答案 0 :(得分: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");,然后重试。