Загрузка...

CheckSpamTime

Проверка на спам без использования капчи

Меня лично дико раздражает каптча, в особенности, когда великая и могучая гугля шесть раз подряд пытается у меня узнать как выглядят витрины и дороги, а если нужно вводить циферки написанные на тарабарском то вообще труба. Это меня как пользователя она раздражает. А как программиста — ее не всегда корректно впишешь в дизайн. Поэтому я искал решения, которые бы отсеивали спам, но при этом не использовали каптчу.

По сути было найдено два решения:

1) Скрытое поле и проверка на пустоту, но, к сожалению, роботы научились распознавать такие поля.
2) использовать сервис Akmist, который проверяет содержимое, но почему-то он отвалился и я так не сумел найти к нему подход.

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

Итак, от слов к делу.

Для eForm (evolutionCMS).

Создаем сниппет checkSpamTime, вставляем в него код:


Далее делаем вызов сниппета над вызовом eForm (если используется несколько форм, необходимо поставить ОДИН раз над самой верхней), и в самом сниппете пишем &eFormOnBeforeMailSent=`checkSpamTime`

В итоге у нас получается что-то вроде такого:


Ресурс или чанк не найдены для шаблона с id= ''



Для formLister (evolutionCMS)

Создаем сниппет checkSpamTimeFL, вставляем в него код
и вызываем его в prepare.
В итоге у нас получается что-то вроде такого:



За обновление решения спасибо Pathologic

Для FormIt (Modx Revolution)

Создаем сниппет checkSpamTime, вставляем код:


Замечание. Я с Ревой знаком поверхностно, поэтому может кто подскажет: на что заменить проверку count($_POST)? Я че-та не нашел ничего более изящного((

И вписываем его первым в хук и пре хук, т.е.

Все три варианта проверенны — работают)

Позвоните нам

прямо сейчас по телефону

Связь

+375 (29) 7-444-555

+7 (967) 044-03-33

или заполните специально подготовленный бриф на разработку сайта

или пришлите задание на почту info@dvakota.by

и наш специалист предоставит вам исчерпывающую информацию, как технического, так и финансового характера

Веб-студия «Два Кота» Контакты:
Адрес: ул. П.Бровки, 50, оф.222 210038 Витебск,
Телефон:+375 29 7 444 555, Электронная почта: info@dvakota,by