验证码"破碎"在webhost上,但不在localhost上

时间:2012-04-01 16:50:03

标签: php captcha

我有一个应该生成代码的验证码脚本。它在我的本地主机上运行得非常出色,但是当我将它上传到我的webhost时,它看起来就像一张破碎的图像。请注意,GD已安装并正常工作(我有一个图像大小调整脚本,可以在webhost上正常工作)。

这是我的captcha.php代码(验证码会话值在此脚本之外生成):

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

$text = $_SESSION['captcha'];

//Image specs
$fontsize = 28;
$imagewidth = 130;
$imageheight = 50;

$image = imagecreate($imagewidth, $imageheight);
imagecolorallocate($image, 75, 146, 178);
$textcolor = imagecolorallocate($image, 255, 255, 255);

//Set fonts
$font1 = 'fonts/font1.ttf';
$font2 = 'fonts/font2.ttf';
$font3 = 'fonts/font3.ttf';

//Create 15 random lines
for ($x=1; $x<=15; $x++) {
    $linecolor = imagecolorallocate($image, 206, 228, 244);
    $x1 = rand(1,110);
    $y1 = rand(1,50);
    $x2 = rand(1,110);
    $y2 = rand(1,50);
    imageline($image, $x1, $y1, $x2, $y2, $linecolor);
}

//randomize font
$randfont = rand(1,3);
if ($randfont == 1) { 
    $font = $font1; 
} elseif($randfont == 2) { 
    $font = $font2; 
} else {
    $font = $font3;
}

//Randomize text angle
$angle = rand(-3,3);

imagettftext($image, $fontsize, $angle, 10, 32, $textcolor, $font, $text);
imagejpeg($image);

?>

知道可能导致这种奇怪行为的原因吗?

1 个答案:

答案 0 :(得分:0)

轻松修复。你可能在linux上运行灯泡。这件事发生在我身上,因为我的灯没有gd模块。 Gd(图形化的东西)是动态渲染验证码图像的模块。要修理它,请转到灯泡服务器的终端并输入:

sudo apt-get install php5-gd

你应该好好去