Не всем нравится google recaptcha v2 да и у ботов получается ее обходить, но есть просто решение которое многие используют, подсмотрел его вроде modx.pro и чутка модифицировал
Алгоритм очень прост, мы добавляем на форму невидимое поле, не с типом
hidden, а просто обычный
input скрытый при помощи css, даем ему имя типа
work-email и пишем простейший сниплет проверки данного поля на заполненость, бот не сможет пройти мимо и обязательно заполнит
email.
Поле input
<input type="text" placeholder="Ваш рабочий email" name="work-email" value="">
Его css
input[name=work-email] {
padding: 0;
margin: 0;
border: none;
max-width: 0;
max-height: 0;
}
Snippet:
checkOnSpam
<?php
if ($_POST['work-email']) {
//$modx->log(modX::LOG_LEVEL_ERROR, 'СПАМ ДЕТЕКТЕД: \r\n' . print_r($_REQUEST,true));
echo $AjaxForm->success('Ваше сообщение отправлено');
die();
} else {
//$modx->log(modX::LOG_LEVEL_ERROR, 'Письмо: \r\n' . print_r($_REQUEST,true));
return true;
}
Добавляем сниппет в обработку FormIt
{$_modx->runSnippet('!AjaxForm',[
'snippet' => 'FormIt',
'form' => 'form.tpl',
'emailTpl' => 'form.email',
'hooks' => 'checkOnSpam, email',
'emailSubject' => 'Письмо с сайта',
'emailFrom' => 'info@yoursite.ru',
'emailTo' => 'your@email.ru'
'validate' => 'name:required',
])}
Вот как то так, надеюсь это вам поможет избавиться от спама!
Комментарии ()