Php защита от спама с помощью скрытого поля input

5827

Допустим, на сайте есть какая-то форма, которую надо защитить от спама. Например:

<form action="/" method="POST">
<input id="email" type="email" name="email" placeholder="Ваш эл.адрес" required="">
<textarea id="message" name="message" placeholder="Текст сообщения..." required=""></textarea>
<button type="submit" class="form__submit">Отправить</button>
</form>

Для этого в форму необходимо добавить скрытое поле с именем name или email, а настоящие поля для передачи имени и почты пользователя назвать по-другому. Пример скрытого поля: <input id="antispam" name="name" type="hidden" value="">.

<form action="/" method="POST">
<input id="email" type="email" name="email" placeholder="Ваш эл.адрес" required="">
<textarea id="message" name="message" placeholder="Текст сообщения..." required=""></textarea>
<input id="antispam" name="name" type="hidden" value=""> // скрытое поле
<button type="submit" class="form__submit">Отправить</button>
</form>

Это поле будет не видно человеку, но видно ботам. Принцип действия защиты очень прост: человек при отправке формы будет оставлять это поле пустым, а боты будут автоматически заполнять. Php - обработчик будет проверять поле на пустоту, и, если оно заполнено, то отправка письма производиться не будет.

<?php if ($_POST['name'] !=="") // если инпут не пустой, то выводим предупреждение
{ echo $alert = ' Ваше сообщение не отправлено! ';}
else { // если пуст, то обработка формы..}

Как сделать форму связи на сайте с помощью php, можно прочитать здесь.

php

Добавить комментарий

Ваш адрес email не будет опубликован.

*
code