Защита email формы обратной связи от спама

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

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

Валидация означает проверку данных, вводимых пользователем. В PHP доступны два типа проверки:

Валидация на стороне сервера — после отправки данных на сервер их проверка осуществляется на серверной стороне

Валидация на стороне клиента — проверка выполняется на стороне клиента в веб-браузере

Согласитесь, что валидация, это прекрасный метод проверки правильного заполнения форм — если написать что-то лишнее или не в том формате, то форма не будет отправлена, а предложит исправить ошибки. Казалось бы, что всё хорошо, но есть проблема. Дело в том, что поля проверяются методом JS, а этот метод работает на стороне пользователя, т.е. в браузере этого пользователя и если отключить JavaScript, то проверка полей (валидация) производится не будет. В результате отключения JS будет отключена валидация, а соответственно все ограничения будут сняты и через форму можно будет отправить сообщение без заданных вами ограничений. Спам боты работают так же, т.е. они не используют JS.

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

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

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

Влидацию на стороне сервера можно сделать в любой форме и на любой системе управления контентом, но так как наш блог посвящается конструктору Wysiwyg Web Builder, то я расскажу как это сделать в нём.

Защита формы связи Wysiwig Web Builder от спама, через валидацию на стороне сервера

Здесь я покажу вам, как подключить проверку форм обратной связи Wysiwig Web Builder через PHP, т.е. проверку полей не в браузере пользователя, а на стороне сервера.

  1. Создаёте форму обратной связи.
  2. Настраиваете проверку каждого поля по сценарию, который вам необходим.
  3. Загружаете на сервер (ваш хостинг) и проверяете работу вашей формы и работу всех проверок, которые вы настроили в полях.
  4. Если форма работает, проверка полей работает, то переходим к другому этапу.
  5. Открываем свойства формы (шаг 1)
    Свойства формы wysiwyg
  6. Нажимаем кнопку Дополнительно (шаг 2), потом вкладку Прочее (шаг 3) и ставим галочку в пункте Разрешить валидацию на стороне сервера (шаг 4)
    Включаем валидацию формы на стороне сервера
  7. Загружаем страницу на ваш сервер и пользуемся!

Если после этого форма перестаёт работать, то отключите эту галочку и заново загрузите, что бы выяснить, что именно без галочки всё в порядке.

Если без галочки всё работает, а с ней нет, то обратитесь к хостеру, опишите ситуацию и пусть хостер исправить конфигурацию вашего аккаунта, если это допустимо.

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

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


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

Порядок перевода.

  1. Вы можете исправить сумму на любую другую, или оставить ту, которая стоит по умолчанию.
  2. Нажать иконку банковской карты (если хотите сделать перевод без регистрации).
  3. Нажать кнопку «Подарить», для перехода на сайт платёжной системы для осуществления оплаты.