@Maksiklass
Не шарю

Что изменить в коде, чтобы перестали спамить боты через форму обратной связи?

Всем привет!
Нашёл инструкцию как защитить форму обратной связи без использования каптчи от спам-ботов.

в PHP добавляем
$msg=$_POST['message'];
$count=$_POST['count'];

if (str_word_count($msg) <= $count) {
    // сделать что-то с этим
}

в HTML в тег textarea добавляем следующие классы
name="message"
onkeyup="javascript:countme();"
tabindex="4"


1)Где ошибка? и что значит в php // сделать что-то с этим. Если надо что то вписать echo и т.п. то что? я очень не грамотен в php.
2) Подскажите где можно опубликовать полный код php обработчика, чтобы знающие люди могли подсказать в чем ошибки?
Например, у меня в php нет закрывающего тега ?> , когда я его ставлю, то форма вообще перестает работать, как, почему? во всех примерах ?> присутствует. Или в сообщениях на почту вместе с текстом приходят \r\n\r\n\r\n\r\n от которых не могу избавиться.
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ответы на вопрос 5
riot26
@riot26
<:З )~~
1) Функция countme() в js не определена, она должна считать кол-во символов и писать его в поле формы count. Комментарий "сделать что-то с этим" значит что там нужно написать код, который будет исполняться если проверка не пройдена. Сама проверка заключается в том, что клиент вместе с сообщением присылает его длину.
2) gist/pastebin. \r\n\r\n\r\n\r\n - это переносы строк, их нужно либо переводить в html-ные переносы, либо письмо отправлять как текст
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Поставить каптчу.

Это единственный вариант который будет работать по принципу "я тут что-то нашел, и воткнул себе на сайт но понятия не имею что это такое и как работает".
Ответ написан
потому что экранировать надо
и использовать слияние строк
к примеру
<?
echo "Ваше имя {$_POST["login"]}";
или
echo "Ваше имя". $_POST["login"] . "еще текст";
?>
Ответ написан
Комментировать
@ipokos
А чем от ботов поможет избавится проверка str_word_count($msg) <= $count ?
без использования каптчи

в чем проблема использовать капчу?
и что значит в php // сделать что-то с этим

// - в php это однострочный комментарий.
Ответ написан
Комментировать
@iitovka
Убрать тег form и/или отправлять поля на обработчик Аяксом
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы