promo   site     
продвижение сайтов в поисковых системах
трафик, позиции, прозрачность

Евгений Трофименко
order2@promosite.ru
Москва (495) 669-32-81
заказать продвижение сайта

Защита форм от роботов, проверка на человека (PHP+GD)


сервисы

Это бесплатный комплект скриптов на PHP, который позволяет на любую форму установить проверку юзера на человечность. Особенность конфирмера: НЕ НУЖНО использовать сессии при работе! Картинки не генерятся индивидуально для пользователей, но защита вполне достаточная.

Пример работы конфирмера, СКАЧАТЬ конфирмер (ZIP, 17 kb)

Требуется возможность работы PHP с графикой, а именно функции imagecreatefromgif, imagegif.

Комплект состоит из:

  1. файл confirmer_pic.php, который генерит картинку с нужным числом псевдослучайных символов, меняющихся раз в минуту
  2. файл confirmer_include.php, который знает алгоритм генерации картинки и проверяет введенную строчку на правильность. Должен находиться в той же директории, что и (1).
  3. файл form.php, пример использования кода. Он инклюдит confirmer_include.php и получает результат проверки в виде переменной $confirmer_result (=0,1) и показывает картинку счетчика $confirmer_pic. Должен находиться в той же директории, что и (1,2), т.к. вызов картинки идет из той же директории. Вы можете это исправить сами.
  4. директории с графической подложкой и GIF-картинками буковок. Эта директория прописана в файле confirmer_pic.php, вообще ее желательно прятать от чужих глаз. Все картинки можно менять на свои! Вы можете создать свой конфирмер, использовать свои картинки.

Картинка генерится на основе номера минуты, зашифрованного функцией crypt() с параметром $confirmer_salt. Эта строка (фактически: пароль) должна быть одинаковой в скриптах confirmer_pic.php и confirmer_include.php - иначе ничего не получится.

Пароль $confirmer_salt снаружи можно подобрать... :) но это очень-очень долго :).

В параметре $confirmer_num файла confirmer_include.php задается число буковок, которые надо вводить юзеру в поле.

Картинка валидна в течение $confirmer_min минут после ее создания. Просто скрипт confirmer_include.php проверяет все значения, соотвествующие прошедшим минутам.

Работает конфирмер просто:

  1. В начале скрипта form.php вы инклюдите confirmer_include.php.
  2. Если запрос пришел методом GET, он выставляет переменную $confirmer_pic, которая содержит html-код: картинку с пояснением.
  3. Если запрос пришел методом POST, он выставляет переменную $confirmer_result, которая равна 1, если юзер ввел правильный код, или 0, если неправильный (в этом случае он устанавливает $confirmer_pic и просит повторить ввод). Анализируете эти данные и делаете свои дела.

Some tips:

Если код не совпадает, надо не полениться и выдать юзеру обратно всю форму с уже заполненными полями. Может, он 0 с o перепутал? Или 1 c l?

Очень хитрая генерация картинок используется :)

Под картинкой находится ссылочка на эту страницу, "как поставить себе такой же". Можно ее менять, но просьба совсем не удалять... :)


Доступ к CRM с примерами позиций:
rabsila.ru: пароль demo
cbrf.magazinfo.ru: пароль demo

отправить заявку - вопрос?

Контакты
order2@promosite.ru
(495) 669-32-81, Москва

Продвижение сайтов / сравнить:
-по трафику / посещаемость
-по позициям / первая страница
Доступ к CRM с примерами позиций:
rabsila.ru: пароль demo
cbrf.magazinfo.ru: пароль demo
SEO-инструментарий и ноу-хау
Rambler's Top100
продвижение сайтов в поисковых системах
трафик, позиции, прозрачность
 promo   site     

Услуги SEO с 1 мая 2002 года
Евгений Трофименко
order2@promosite.ru
Москва (495) 669-32-81