我在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);
答案 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");
,然后重试。