Я хочу создать свою собственную проверку Captcha в PHP, и я написал этот код, но он, похоже, не работает. Изображение не создается, и я не могу найти, где ошибка.Создание пользовательского кода в PHP
PHP:
<?php
session_start();
$string = '';
for ($i = 0; $i < 5; $i++) {
// this numbers refer to numbers of the ascii table (lower case)
$string .= chr(rand(97, 122));
}
$_SESSION['rand_code'] = $string;
//specify the path where the font exists
$dir = 'fonts/arial.ttf';
$image = imagecreatetruecolor(170, 60);
$black = imagecolorallocate($image, 0, 0, 0);
$color = imagecolorallocate($image, 200, 100, 90); // red
$white = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image,0,0,399,99,$white);
imagettftext ($image, 30, 0, 10, 40, $color, $dir."arial.ttf", $_SESSION['random_code']);
header("Content-type: image/png");
imagepng($image);
?>
HTML:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<p><input type="text" name="name" /> Name</p>
<p><input type="text" name="email" /> Email</p>
<p><textarea name="message"></textarea></p>
<img src="captcha.php"/>
<p><input type="text" name="code" /> Are you human?</p>
<p><input type="submit" name="submit" value="Send" class="button" /></p>
</form>
Попробуйте использовать порт imagemagick PHP. –
Это требует базовой отладки. Что не так? Вы получаете изображение? Если нет, удалите вызов 'header()' и посмотрите, какие сообщения об ошибках появляются. –
Нет, я не получаю изображение. Я получаю значок браузера по умолчанию для недостающего изображения. Удаление заголовка() ничего не изменило и не показало никаких сообщений об ошибках. – Smolikas