Приветствую!
Перестала работать форма обратной связи после попытки сделать защиту от спама. При попытке отправить сообщение, выскакивает станица с надписью “Spam decected”.
Суть в том, что при нажатии на кнопку “отправить” скрипт записывает в пустую переменную секретное значение. От человека переменная приходит с этим значением, а от бота приходит пустая, так-как бот не выполняет js.
В чём может быть проблема ? Благодарю!
Прикладываю код html,js,php
Вот строка, которая в php
if ($ _POST['check'] != 'secretcode') exit('Spam decected');
Вот сама форма
<form class="s_form" action="contactengine.php" method="post"> <input id="check" name="check" type="hidden" value="" /> <input class="s_text nameinp sinp copy-form" name="Name" placeholder="Имя" type="text"> <input class="s_text nameinp sinp copy-form" name="Email" placeholder="Почта" type="text"> <input class="s_text nameinp sinp copy-form" name="Tel" required placeholder="Телефон" type="text"> <input class="s_submit copy-form" name="send" value="Отправить заявку" type="submit"> </form>
Вот скрипт
function handler(e) { var elem = e.target; //e.target - нажатый элемент, в нашем случае кнопка var parent = elem.parentElement; //родительский элемент - при такой разметке будет родительская форма var checkInput = parent.getElementsByClassName("check")[0]; //вытягиваем из divа первый нужный инпут checkInput.value = "secretcode"; //ставим нужное значение } var buttons = document.getElementsByClassName("s_submit copy-form"); for (var i =0;i<buttons.length;i++) { buttons[i].onclick = handler; }