PHP Captcha Imagettftext无法正常工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Captcha Imagettftext无法正常工作相关的知识,希望对你有一定的参考价值。

在实现脚本时遇到困难,我遇到了一个验证码代码。 对php不太熟悉,所以任何帮助都会很棒。

问题:验证码映像未显示在实时服务器上,但显示在我的本地服务器上。

验证文件:

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

$width  = 90;
$height = 30;
$dir = getcwd().'/fonts/';

$black = imagecolorallocate($my_image, 0, 0, 0);
$angle = rand(0,3);

imagefilledrectangle($image,0,0,399,99,$white);


$my_image = imagecreatetruecolor($width, $height);

imagefill($my_image, 0, 0, 0xFFFFFF);

// adds noise
for ($c = 0; $c < 50; $c++){
    $x = rand(0,$width-1);
    $y = rand(0,$height-1);
    imagesetpixel($my_image, $x, $y, 0x000000);
    }

$x = rand(10,12);
$y = rand(10,15);

$rand_string = rand(1000,9999);
//imagestring($my_image, $font, $x, $y, $rand_string, 0x000000);
imagettftext ($my_image, 22, $angle,10, 27, $black, $dir."arial.ttf", $rand_string);
setcookie('tntcon',(md5($rand_string).'a4xn'));

imagejpeg($my_image);
imagedestroy($my_image);
?>

联系表:

<img src="verification.php?<?php echo '<span>'.rand(0,9999).'</span>';?>" alt="Anti spam verification" class="verify" />    
  • 字体位于名为“ fonts”的根文件夹中

谢谢大家的投入。

答案

我假设您的“实时”服务器关闭了display_errors 。 这意味着它不会向您显示错误所在。 您需要检查PHP错误日志。 我的猜测是未安装GD。

如果您使用的是Apache,则它应位于/var/log/apache2 。 如果没有,您可以通过创建PHP信息文件来询问PHP,以查看设置是什么。

<?php phpinfo();

以上是关于PHP Captcha Imagettftext无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

PHP 通过 imagettftext() 为图片添加水印

php的GD库imagettftext函数解决中文乱码问题

PHP GD imagettftext 测量

php在linux下call to undefined function imagettftext()

Mac php使用gd库出错 Call to undefined function imagettftext()

使用多行的 imagettftext 函数?