Капча для сайта php

Капча для сайта php

Философия программирования

Итак, мы наконец-то решились защитить свои формы капчей, т.к. спамеры вконец достали тупым спамом.

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

Итак, в этом посте мы напишем собственный гибкий капча-механизм на PHP, который мы сможем поставить на свои формы за 5-10 минут.

Наша капча будет состоять из заданных латинских букв и арабских цифр, может иметь нужную нам длину и дополнительные артефакты в виде наклонов и линий, затрудняющих сканирование капчи ботами. Все эти параметры легко задаются в серверном скрипте, который будет формировать и показывать капчу.

Капчу мы будем рисовать на движке PHP GD, и для этого нам потребуются шрифт(ы) – да, можно использовать несколько шрифтов для некого затруднения работы по обходу капч.

Создадим папку fonts и закинем туда парочку бесплатных TTF-шрифтов, например, liber-mono.ttf и liber-sans.ttf. Сразу замечу, что полный комплект файлов – скрипты и шрифты вы можете скачать по ссылке: https://beotiger.com/download/jcaptcha.

Напишем наш серверный скрипт, который будет создавать и отображать капчу, назовём его скажем, jcaptcha.php

Вот этот скрипт с подробными комментариями:

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

Сначала скачайте скрипт капчи на PHP. Извлекайте архив и помещайте его на Ваш сайт.

Читайте также:  Как увеличить деньги в гта 5

Теперь о том, как добавить капчу на форму, например, на форму регистрации:

В результате, на форме регистрации Вы увидите проверочный код, который пользователь должен будет ввести. Теперь о том, как проверить правильность ввода. Для этого в файле "register.php" (или в другом файле, который указан в атрибуте "action") пишем следующие строки:

session_start();
if($_POST[‘kapcha’] != $_SESSION[‘rand_code’]) echo "Капча введена неверно";
else echo "Капча введена верно";

То есть считываем то, что ввёл пользователь ($_POST[‘kapcha’]) и сравниваем с тем, что находится в сессии (данное значение было записано при генерации капчи). Если значения не совпадают, то делаем вывод, что капча введена неправильно, иначе делаем вывод, что капча введена верно. То есть дальше Вы можете, основываясь на результат сравнения выполнить определённые действия. Например, зарегистрировать пользователя или отправить его вновь на форму регистрации, хотя, безусловно, это зависит от Вашей задачи.

Если Вы хотите научиться самостоятельно создавать подобные скрипты, то посмотрите мой Видеокурс "PHP и MySQL с Нуля до Гуру": http://srs.myrusakov.ru/php

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Читайте также:  Импорт контактов в вконтакте

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 61 ):

    Эта капча очень слабая и можно легко написать скрипт который будет распозновать его. Михаил, советую поменять капчу при регистрации.

    Капча является формальной, однако, какой смысл автоматической регистрации на моём сайте? У меня свой движок, своя система, поэтому никто не будет возиться с ним. Это никому не нужно, потому и капча чисто формальная, которая сделана максимально простой для обычных людей.

    А зачем тогда капча вообще нужна?

    Для защиты от авторегистраций. А вдруг кому-нибудь понадобится? Это Вам кажется, что капча очень лёгкая, уверяю, что разработать подобный алгоритм распознавания очень тяжело, поэтому человек передумает заниматься авторегистрацией на моём сайте.

    Я немного усовершенствовал рисунок (сделал его меньше по высоте на 10 пикселей) и теперь нижние хвосты немного обрезаны. Такие, как "j" сканер определяет как "i", а "y" как "v", "p" как "o" или "D" ну и так далее. Просто нижняя часть скрыта настолько, что человек поймет, какая это буква, а fine reader нет 🙂

    А я вобщем просто не заморачивался и скачал другой шрифт с корявыми буквами, в коде заменил verdana.tff на название моего шрифта и всё =)

    В какое место вставить session_start(); if($_POST[‘kapcha’] != $_SESSION[‘rand_code’]) echo "Капча введена неверно"; else echo "Капча введена верно"; Обратная связь

    Перед вами простой основанный на PHP/GD скрипт капчи, который поможет предотвратить поток спама. Капча предназначена для гостевых книг, форм обратной связи и любых других приложений способных воспроизвести спам посредством веб-ботов.

    Ниже, кликнув по ссылке, вы можете скачать скрипт капчи:

    Все что нам нужно: PHP с библиотекой GD (начиная с версии PHP 4.3 входит в стандартную поставку интерпретатора) и шрифт формата true type. Данный шрифт пригодится для создания изображения.

    Читайте также:  Как удалить samsung account без пароля

    Сперва создайте PHP файл, который будет генерировать изображения, например, captcha.php .

    Работу скрипта можно увидеть внизу, в форме для отправки комментариев к статье.

    Ниже приведен код с формой, в которой содержитя путь к файлу captcha.php .

    Далее нам потребуется файл, в котором будет проверяться валидность капчи и введенные пользователем значения. Связать этот файл с формой поможет атрибут тега form action , значение которого указывает на путь к файлу. Код данного файла может выглядеть следующим образом:

    Ссылка на основную публикацию
    Калибровка монитора macbook pro
    Сервисный центр MacPlus (ремонт Apple) раскрывает секреты калибровки дисплея iMac и Macbook Вы замечали, что одни и те же изображения...
    Какие разделы нужны для ubuntu
    Разделы в Ubuntu и Windows: в чем отличия? Разметка диска, или по-другому — создание разделов, всегда вызывала у начинающих пользователей...
    Какие роутеры подходят для билайн домашнего интернета
    Хочу купить вай-фай роутер (провайдер Билайн) , что бы можно было вай фай раздавать на ноут и др устройства плюсь...
    Калькулятор градусов и минут сложение и вычитание
    Калькулятор, поддерживающий основные арифметические действия над выражениями с градусами. Создан по запросу пользователя. Этот калькулятор выполняет арифметические действия над градусами....
    Adblock detector