Простая графическая каптча, которую можно использовать в любых проектах

                        
image.php 

<?php
header("Content-type: image/png");
$string = "abcdefghijklmnopqrstuvwxyz0123456789";
for($i=0;$i<6;$i++){
$pos = rand(0,36);
$str .= $string{$pos};
}

$img_handle = ImageCreate (60, 20) or die ("Cannot Create image");
//Image size (x,y)
$back_color = ImageColorAllocate($img_handle, 255, 255, 255);
//Background color RBG
$txt_color = ImageColorAllocate($img_handle, 0, 0, 0);
//Text Color RBG
ImageString($img_handle, 31, 5, 0, $str, $txt_color);
Imagepng($img_handle);

session_start();
$_SESSION['img_number'] = $str;
?>


form.php

<form action="result.php" method="post">
<img alt="Random Number" src="image.php">
<input type="text" name="num"><br>
<input type="submit" name="submit" value="Check">
</form>



result.php

<?php
session_start();
if($_SESSION['img_number'] != $_POST['num']){
echo'The number you entered doesn't match the image.<br>
<a href="form.php">Try Again</a><br>';
}else{
echo'The numbers Match!<br>
<a href="form.php">Try Again</a><br>';
}
?>
1 7 0
0

Нет фото
~AL~ * 11.86
• 24 июл 2013, 04:54


Этот код ни на что не годится, кроме как заставить пользователя произвести лишние действия и даже не потому, что изображение легко разгадать, а потому, что числовой код в сессии остается неизменным и любой новичок напишет автореггер или спаммер за 2 минуты. Чтобы этого не произошло, нужно обязательно удалять числовое значение из сессии, unset($_SESSION[\'var\']);