Наверно уже всем известно, что такое
И так, приступим. Для начала нам нужно будет создать форму.
На форме у нас будет:
- Капча
- Поле для заполнения капчи
- Кнопка для отправки данных с поля
<form action="index.php" method="post"> <img src="captcha.php" alt=""/> <br> <input name="txtCaptcha" type="text"/> <input name="btnOk" value="ок" type="submit"/> </form>
После создание формы, создайте папку, возле нашего исполняющего файла, с названием fonts(в ней мы будем хранить шрифты для капчи) и внутрь этой папки поместите любой шрифт, который Вам понравится. Шрифты можно взять из системной папки шрифтов в Windows или найти в гугле. После создайте еще один php файл с именем captcha(в этом файле будет сам код по создание капчи).
В итоге папка с проектом должна иметь примерно такой вид:
В файле captcha.php пишем следующие строки:
<?php session_start(); // начать работу с сессиями // далее создаем полотно для нашей капчи: ширина - 100, высота - 45 $bitmap = imagecreatetruecolor (100, 45); $color_bitmap = imagecolorallocate($bitmap, 233, 233, 233); imagefill($bitmap, 0, 0, $color_bitmap); // задаем цвет нашей линий $clinea = imagecolorallocate($bitmap,63,63,63); // добавляем случайно расположенные линии imageline($bitmap,rand(0,40),0,rand(0,70),40,$clinea); imageline($bitmap,rand(0,50),0,rand(0,50),40,$clinea); imageline($bitmap,rand(0,50),0,rand(0,30),40,$clinea); // генерируем случайный код капчи $string_captcha = substr(md5(microtime() * mktime()),0,rand(3,5)); // записать сгенерируемый код в сессию $_SESSION['captcha'] = $string_captcha; // цвет текста капчи $red = rand(100,255); $green = rand(100,255); $blue = rand(100,255); $color = imagecolorallocate($bitmap,255-$red,255-$green,255-$blue); // добавляем сгенерированный текст с шрифтом courbd на наше полотно $text = imagettftext($bitmap,16,rand(-10,10),rand(10,30),rand(25,35),$color,"fonts/courbd.ttf",$string_captcha); // сохранить результат imagejpeg($bitmap); ?>
И снова возвращаемся к файлу index.php и дописываем сверху вот такой скрипт:
<?php session_start(); if (isset($_POST['btnOk'])) // проверка нажал ли пользователь кнопку { if( $_SESSION['captcha'] != $_POST['txtCaptcha']) // проверка равна ли сессия тому что ввел пользователь { echo "Неверный код!"; } else { echo "Поздравляем! Вы прошли защиту"; } } ?>
В результате мы получили готовый скрипт капчи
Получайте новые статьи блога прямо себе на почту
Спасибо, конечно, статья хорошо написана. Но для чего нужна капча? на блоге она только раздражает посетителей.
Для того, чтобы избежать спама
Очень познавательная и полезная статья, особенно для тех кто не знает PHP. Спасибо!
ПРИВЕТ! УДАЧИ! ВРУЧАЮ ВАМ КУБОК ПРИЗНАНИЯ! САЙТ ПОНРАВИЛСЯ, КРАСИВЫЙ И СОДЕРЖАТЕЛЬНЫЙ!
С наступающим Новым Годом! Всех Вам благ и исполнения желаний! Успеха Вам!
Это палка о двух конца: без защиты тоже плохо, но и заставлять посетителей проходить нудную процедуру (особенно, если предлагается выставить картинки вертикально — ненавижу эту капчу), тоже не дело
Меня каптча в коментариях раздражает