PHP
Идеальная защита от ботов без капчи
Защита от ботов методом подсчета количества нажатий по клавиатуре + последующее сравнение количества введенных слов (на стороне сервера).
В поле для ввода текста добавим атрибут "Onkeyup":
<textarea form="contact_form" name="QUESTION" placeholder="Сообщение" onkeyup="count_keyup()"></textarea>
затем добавим JS код:
var ct = 0;
//increase countme input value:
function count_keyup() {
document.getElementById('count').value = ++ct;
}
На стороне сервера напишем код подсчета кол-ва символов и добавления бота в ЧС:
if (isset($data['countme'])) {
$words_count = str_word_count($data['QUESTION'], 0,
"АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя");
if ($data['countme'] == 0) {
$arLoadProductArray['IBLOCK_ID'] = 133;//Сообщения с форм ---> ловушка для ботов
if ($PRODUCT_ID = $el->Add($arLoadProductArray)) {
echo json_encode(['status' => false, 'msg' => 'Ваша заявка не принята!'], JSON_UNESCAPED_UNICODE);
} else {
echo json_encode(['status' => false, 'msg' => strip_tags($el->LAST_ERROR)], JSON_UNESCAPED_UNICODE);
}
}
}
Афоризм дня:
Кто в верности не клялся никогда, тот никогда ее и не нарушит. (628)
Leave a reply