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" />
- Шрифт находится в корневой папке с названием "шрифты"
Спасибо за ваш вклад всем.
1 ответ
Решение
Я бы предположил, что ваш "живой" сервер имеет display_errors
выкл. Это означает, что это не покажет вам ошибку о том, что идет не так. Вам нужно проверить журнал ошибок PHP. Я думаю, что GD не установлен.
Должно быть в /var/log/apache2
если вы используете Apache. Если нет, вы можете задать PHP, создав информационный файл PHP, чтобы узнать, что такое установка.
<?php phpinfo();