2

我有这段代码应该生成一个随机数的验证码图像,它在本地主机上运行良好,但在我的主机上运行良好,有人可以帮忙吗?有人能告诉我我哪里出错了吗?

         <?php
 session_start();
header('Content-type: image/jpeg');

 $text= $_SESSION['secure'];

 $font_size =30;
 $image_width= 110;
 $image_height=40;

 $image=imagecreate($image_width,$image_height);
 imagecolorallocate($image, 255, 255, 255);
 $text_color = imagecolorallocate($image, 0, 0, 0);


 for($x=1; $x<=30; $x++){
$x1 = rand(1,100);
$x2 = rand(1,100);
$y1 = rand(1,100);
$y2 = rand(1,100);
 imageline($image, $x1, $x2, $y1, $y2, $text_color);
}

imagettftext($image, $font_size, 0, 15, 30, $text_color, 'font.ttf', $text);
imagejpeg($image);
?>

然后我将包含上述代码的文件包含在一个新的 html 文件中,其中我有我的表单并像这样调用图像:

 <img src="generate.php"/>
4

2 回答 2

1

用字符串测试了你的脚本,hello它可以工作

生成的图像

我很确定问题是PHP找不到字体..尝试使用完整的系统路径

尝试

$font = dirname ( __FILE__ ) . "/verdana.ttf" ;
if(!is_file($font))
{
    die("Missing Font");
}
于 2012-04-26T19:31:33.073 回答
0

确保您的脚本中没有前导空格或换行符。在尝试显示图像之前输出的任何文本都将导致它失败。

于 2013-02-08T20:05:28.320 回答