Как сделать капчу php

В статье рассматривается процесс создания простой капчи для вашего сайта на PHP с примером кода. Узнайте, как генерировать случайные строки для вашей капчи и проверять правильность ввода посетителем.

Использовать капчу для предотвращения спама и атак ботов является одним из самых распространенных способов проверки пользователей на предмет наличия человеческого фактора. В данной статье мы рассмотрим пример использования капчи на языке PHP.

Шаг 1. Создание картинки для капчи

Для формирования картинки капчи в первую очередь необходимо создать изображение и залить его случайным цветом. Для этого мы будем использовать функцию imagecreate() из библиотеки GD, передав ей в качестве параметров ширину и высоту картинки капчи. Далее мы зальем изображение случайным цветом с помощью функции imagefill() и установим параметры для линий и шрифтов с помощью функций imagesetthickness() и imagettftext():

$image = imagecreate(100,50); // создаем изображение

$background_color = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255)); // случайным образом цвет нашего фона

imagefill($image, 0, 0, $background_color); // заливка цветом фона

imagesetthickness($image, 2); // устанавливаем толщину линии

imagettftext($image, 20, -10, 20, 30, $background_color, 'font.ttf', $captcha_text); // добавляем текст на изображение

Шаг 2. Генерация текста для капчи

Для генерации текста для капчи можно использовать функцию mt_rand(), которая генерирует случайное число в заданном диапазоне. Например, чтобы сгенерировать код из 6 случайных символов используем следующий код:

$captcha_text = '';
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

for ($i = 0; $i < 6; $i++) {
    $captcha_text .= $characters[mt_rand(0, strlen($characters) - 1)];
}

Шаг 3. Сохранение капчи в файл и вывод изображения на экран

После того как изображение для капчи будет создано, мы должны записать его в файл и вывести на экран. Для этого мы используем функцию imagepng() для сохранения изображения в файл и функцию header() для вывода изображения на экран:

imagepng($image, 'captcha.png'); // сохраняем изображение в файл

header('Content-type: image/png'); // выводим изображение на экран
imagepng($image);

Шаг 4. Проверка правильности введенного кода

После того как изображение будет выведено на экран, мы должны проверить правильность введенного пользователем кода. Для этого мы будем использовать функцию strcmp(), которая сравнивает две строки и возвращает 0 в случае их совпадения. Пример кода ниже:

if (strcmp($_POST['captcha_code'], $captcha_text) == 0) {
    // код введен правильно
} else {
    // код введен неправильно
}

Таким образом, мы рассмотрели пример использования капчи на языке PHP. Для реализации капчи на сайте вы можете использовать данный пример или сделать свой вариант в зависимости от ваших требований.

Ответы (0)