Captcha изображение не загружается

Я пытаюсь реализовать изображение Captcha в моей форме php. Проблема в том, что когда я загружаю свою форму php в браузер, изображение капчи не загружается, и отображается поврежденное изображение по умолчанию для тега.
Мой код для формы php и изображения с картинки написан ниже: —

image.php (код php для создания изображения с картинки)

<?php
session_start();

$img = imagecreatetruecolor(80,30);

$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
$grey = imagecolorallocate($img,150,150,150);
$red = imagecolorallocate($img, 255, 0, 0);
$pink = imagecolorallocate($img, 200, 0, 150);

function randomString($length){
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$str = "";
$i = 0;

while($i <= $length){
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$str = $str . $tmp;
$i++;
}
return $str;
}

for($i=1;$i<=rand(1,5);$i++){
$color = (rand(1,2) == 1) ? $pink : $red;
imageline($img,rand(5,70),rand(5,20), rand(5,70)+5,rand(5,20)+5, $color);
}

imagefill($img, 0, 0, $white);

$string = randomString(rand(7,10));
$_SESSION['string'] = $string;

imagettftext($img, 11, 0, 10, 20, $black, "calibri.ttf", $string);

header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>

captcha.php (форма php)

<?php
ob_start();
session_start();

if(!$_POST['submit']){
echo "<form method=\"post\" action=\"captcha.php\">\n";
echo "<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n";
echo "<tr><td>Type The Letters You See Below Into the Box</td></tr>\n";
echo "<tr><td align=\"center\"><img src=\"image.php\"></td></tr>\n";
echo "<tr><td align=\"right\"><input type=\"text\" name=\"image\"></td></tr>\n";
echo "<tr><td align=\"right\"><input type=\"submit\" name=\"submit\" value=\"Check CAPTCHA\"></td></tr>\n";
echo "</table></form>\n";
}else {
$image = $_POST['image'];

if($image == $_SESSION['string']){
echo "<b>Great success!</b>\n";
}else {
echo "<em>Failure!</em>\n";
}
}

ob_end_flush();
?>

Я пытался найти некоторые решения в Интернете, но не нашел ничего, что могло бы сработать.
Благодарю.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector