Как стать автором
Обновить

Моя маленькая каптча

Время на прочтение1 мин
Количество просмотров1.2K
Судя по огромному разнообразию каптч проблемы с выбором и установкой уже давно не должно быть, но почему-то даже на серьезных, взрослых проектах их все еще леняться устанавливать или делают такие чудные вещи как «Сколько будет 2+3?».

Даже если каптча обычного вида, часто ее просто не распознать. Чуствуешь себя андроидом, сдающим экзамен на тест Тьюринга. Казалось бы, что проще — сделайте клик по каптче и она измениться! Но, оказывается, для большинства разработчиков это тоже непосильная задача.

Помимо мудреных каптч сильно напрягает нежелание разработчиков обрабатывать валидность введенных в форму данных еще до отправки формы. А если учесть, что отправка происходит обычно при запущеной сессии (для каптчи), нажатие кнопки «Назад» в случае ошибки заполнения в IE приводит к очистке полей формы и все приходиться вводить с нуля.

Вот этих трех зайчиков может убить всего один маленький файлик — captcha.php (завернуто в rar). Подключается он в любую форму вот так:

... <? include("captcha.php")?> ....

И все! С этого момента все поля формы, у которых в id присутствует * (например: ) проверяются на заполненность при субмите формы. Если какое-то из обязательных полей не заполнено (value='' или value=0 для select'а) - форма не будет отправлена, а незаполненные поля будут подсвечены. Проверка кода в каптче тоже проходит до отправки. Клик по каптче приводит к смене комбинации. Тестировалась на IE, Opera, FF, Safari.

Примеры можно посмотреть здесь: http://sepulka.ru/post, http://gettranslite.com/rus/contacts.html, http://durashka.ru/register.php
Теги:
Хабы:
Всего голосов 14: ↑9 и ↓5+4
Комментарии25

Публикации

Истории

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург