Часто использование обязательных полей для заполнения, капчи и ряда других методов становиться недостаточно для борьбы со спамом. Хорошо при этом помогает простой, но очень эффективный способ с использованием Javascript.

Использовать данный способ следует совместно с капчей, эффективность защиты будет выше!

Плюсы и минусы данного способа:

  • Хорошо работает против ботов.
  • Быстрая установка в форму отправки сообщений
  • Минимум кода (3 строчки)
  • Не требует особых знаний, за исключением расположения основных файлов
  • Пользователи, у которых Javascript отключён, не смогут пройти проверку и отправить сообщение

1 Добавить дополнительное скрытое поле в форму с именем name="check" и пустым значением value=""

<input id="check" name="check" type="hidden" value="">

2 В кнопке той же формы добавить следующий код:

<input type="submit" value="Оправить" onclick="document.getElementById('check').value = 'nospam';">

3 Далее в php скрипте, который выполняет проверку формы вносим следующий код:

if ($_POST['check'] != 'nospam') exit('Spam detected');

Принцип очень прост. Рассчитан он на то, что спам-боты не умеют выполнять программы на JavaScript. В то время когда обычный пользователь нажмет на кнопку формы, в наше скрытое поле впишется слово nospam, а в случае с роботом это поле останется пустым. Почему он останется пустым? Робот заполняет все поля кроме нашего скрытого поля с идентификатором id="check" и переменная check останется незаполненной, следовательно, почта не будет отправлена. А при нажатии на кнопку пользователем, выполнится наш JavaScript, который мы добавили в кнопку.