PHP

Создание CAPTCHA на PHP

CAPTCHA — это простой тест, чтобы определить, является ли пользователь человеком или компьютером. Используется этот тест для защиты от спама или авторегистрации на сайте. В своей статье я покажу, как можно сделать CAPTCHA на php. Готовая CAPTCHA будет выглядеть примерно так:



Создаем файл captcha.php.

<?php
session_start(); 
session_register('code'); 
$height = 20;//Высота картинки
$width = 100;//Ширина картинки
/*Генерируем случайное число, для кода*/
$_SESSION['code'] = rand(10000, 99999);//генерируем 5-ти значное число
for($i = 0; $i < 5; $i++) 
{ 
    $m[$i] = substr($_SESSION['code'], $i, 1); 
} 
$image = imagecreate($width, $height); //Создаем изображение 100x20
$backgroundColor = imagecolorallocate($image, 204, 216, 6); //Задаем цвет для фона
$noiseColor = imagecolorallocate($image, 100, 120, 180);//Задаем цвет помех
$color = imagecolorallocate($image, 239, 8, 8);//Задаем цвет для чисел
for( $i = 0; $i < ($width*$height)/3; $i++ ) 
{
    imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noiseColor);
}
/* Рисуем линии*/
for( $i = 0; $i < ($width * $height)/150; $i++ ) 
{
    imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), $noiseColor);
}
 
for($i = 0; $i < 5;$i++) 
{ 
    imagestring($image, 3, $y += 15, 3, $m[$i], $color);
} 
header('Content-Type: image/jpeg');
imagejpeg($image);
?>


Создадим файл check.php.

<?php 
session_start(); 
?> 
<img src="captcha.php" /> 
<form method="post"> 
Введите число: <input type="text" name="getСode"> 
<input name="sub" type=submit value="Ввод"> 
</form> 
<?php 
if($_POST['sub']) 
{ 
    if($_POST['getСode'] == $_SESSION['code']) 
    { 
        echo "Число введено верно"; 
    } 
    else
    { 
        echo "Число введено неверно"; 
    } 
} 
?>
Теги:
image, height, width, imagecolorallocate, session, CAPTCHA, SESSION, Задаем, noiseColor, введено, Создаем, captcha, картинки , start, Число, color, число, input, getСode, Рисуем, фона , чисел , imagefilledellipse, помех , линии, submit, Введите, value, верно, неверно, else , method, check, header, imagestring
Добавлено: 27 Февраля 2015 08:30:47 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...