Суббота, 20.04.2024
Меню сайта
Вход на сайт
Логин:
Пароль:
Поиск
Статистика
Рейтинг@Mail.ru Яндекс.Метрика
Реклама
HTML Perl PHP Прочее
Создание CAPTCHA на PHP
Что есть CAPTCHA. CAPTCHA – это простой тест, чтобы определить, является ли пользователь человеком или компьютером. Используется этот тест для защиты от спама или авторегистрации на сайте. В своей статье я покажу, как можно сделать CAPTCHA на php.

Скрипт генерации CAPTCHA:

Code
<?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);
?>

Скрипт проверки:

Code
<?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 "Число введено неверно";
  }
}
?>
PHP 5160 28.01.2010
Материалы по теме: