• Как предотвратить спам через форму обратной связи?

    Zakonoposlushniy
    @Zakonoposlushniy Автор вопроса
    Решил проблему таким способом :
    В форму добавил поле
    <input id="check" name="check" type="hidden" value="" />

    Потом в кнопку, через которую идёт отправка, добавил
    onclick="document.getElementById('check').value = 'secretcode';"

    Вышло что-то вроде этого
    <button onclick="document.getElementById('check').value = 'secretcode';" type="submit">Отправить</button>

    И в php-обработчике, добавил это
    if ($_POST['check'] != 'secretcode') exit('Spam decected');


    Возможно кому-то поможет.
    Удачи!
    Ответ написан
    9 комментариев
  • Как предотвратить спам через форму обратной связи?

    villiwalla
    @villiwalla
    HTML-верстка
    Первое, проверка корректности данных должна быть на клиенте и на севере, а не только на клиенте как у вас.

    Второе, спам может пройти проверку корректности на клиенте и сервере, а поскольку спам машина, ей можно подписать инпут с display: none; и именем типовым типа last_name. Проверяем на клиенте и сервере поле, если заполнено то не отправляем, можно ещё код 200 вернуть для бота, а если и это проходит то тогда капчу Гугла вешайте невидимку или галку на форму.
    Ответ написан
    Комментировать