PHP Captcha Imagettftext не работает

С трудом внедряя скрипт, я наткнулся на код Captcha. Не слишком хорошо знаком с PHP, поэтому любая помощь будет потрясающей.

Проблема: изображение Captcha не отображается на рабочем сервере, но отображается на моем локальном сервере.

Файл подтверждения:

<?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" />    
  • Шрифт находится в корневой папке под названием «шрифты».

Спасибо всем за ваш вклад.


person C Dog    schedule 29.12.2011    source источник
comment
Чтобы найти проблему (i) закомментируйте строку header('Content-type: image/jpeg'); (ii) добавьте строки ini_set("display_errors", "On"); error_reporting(E_ALL); (iii) отредактируйте свой вопрос и добавьте любую ошибку или предупреждение.   -  person Salman A    schedule 14.02.2012
comment
PS: что с тегом span внутри атрибута img src? Это сломанный html.   -  person Salman A    schedule 14.02.2012


Ответы (1)


Я бы предположил, что ваш «живой» сервер отключен display_errors. Это означает, что он не покажет вам ошибку о том, что происходит не так. Вам нужно проверить журнал ошибок PHP. Я предполагаю, что GD не установлен.

Он должен быть в /var/log/apache2, если вы используете Apache. Если нет, вы можете запросить PHP, создав информационный файл PHP, чтобы узнать, что такое установка.

<?php phpinfo();
person Xeoncross    schedule 29.12.2011
comment
Вот что я вижу... Поддержка GD включена Версия GD в комплекте (совместима с 2.0.34) Поддержка FreeType включена Связь FreeType с freetype Версия FreeType 2.2.1 Поддержка чтения GIF включена Поддержка GIF Create включена Поддержка JPG включена Поддержка PNG включена Поддержка WBMP включена Поддержка XBM Поддержка включена - person C Dog; 29.12.2011
comment
@Casey, как насчет журнала ошибок. Что это говорит? Этот журнал ошибок должен быть первым местом, куда вы смотрите, поскольку он расскажет вам все, что вам нужно знать. - person Xeoncross; 29.12.2011
comment
К сожалению, для этого проекта мне приходится использовать Godaddy, и я не совсем уверен, как проверить журналы ошибок. Есть ли другой способ поймать ошибки? - person C Dog; 29.12.2011
comment
Затем вам нужно войти в свою учетную запись по ssh и просмотреть ее через командную строку. Раньше у меня была учетная запись Dreamhost, поэтому я знаю, что вы можете это сделать. - person Xeoncross; 29.12.2011