защита от спама

Contact form 7 защита от спама без капчи

Бывает так, что в разработке того или иного сайта мы сталкиваемся не с совсем стандартными проблемами. К примеру, нам нужно защитить Contact form 7 от спама, но сделать это так, чтобы по минимуму нагружать свой сайт или обращаться к сторонним скриптам. Здесь на помощь приходят не совсем стандартные решение коллег по цеху.

Суть метода заключается в следующем: мы создаем скрытое поле для Contact form 7 и делаем так, чтобы без него письмо не отправлялось. Значение этого нового поля задаем при помощи javascript.

Удобно в качестве поля использовать checkbox и 2 его возможных положения. В таком случае форма будет отправляться если галочка снята (по умолчанию она будет нажата). В большинстве случаев бот зайдя на наш сайт сделает 2 вещи:

  • проигнорирует поле (так как не понимает его);
  • поставит checkbox в положение checked.

В обоих случаях Contact form 7 не отправит данную форму. 

Но если заходит браузер исполняющий JS, то галочка снимается через JS и форма отправляется.

Как это делается:

  1. Добавляем к Contact Form 7 новый checkbox. Выглядеть будет примерно так:
    [acceptance agree class:agree default:on invert]
    acceptance — это наш checkbox
    default:on — по умолчанию checked
    class:agree — class=»agree»
    invert — отправлять форму только если checked снят
  2. При помощи CSS стилей скрываем checkbox:
    .agree {display:none}
  3. Снимаем галочку, используя jacascript:
    jQuery('.agree').prop('checked', false);
    </s cript>

    можно и так:
    var x = document.getElementsByClassName("agree");
    var i;
    for (i = 0; i < x.length; i++) {
    x[i].checked = false;
    }
    </s cript>

Не забудьте код обернуть в теги <script language=«javascript»> и </script> соответственно.

Скрипт нужно поместить ниже чем checkbox, и лучше всего обернуть его document.ready.

Оставить Комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *