Приветствую!
Перестала работать форма обратной связи после попытки сделать защиту от спама.
При попытке отправить сообщение, выскакивает станица с надписью "Spam decected".
Суть в том, что при нажатии на кнопку "отправить" скрипт записывает в пустую переменную секретное значение. От человека переменная приходит с этим значением, а от бота приходит пустая, так-как бот не выполняет js.
Вот код
<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;
}
А вот код который в обработчике
if ($_POST['check'] != 'secretcode') exit('Spam decected');
Где я допустил ошибку?