
CrawlerDetect
Определение ботов по заголовкам запроса и защита форм от спама без CAPTCHA
- MODX 3
- PHP 8.2


За 2 минуты: защитить контактную форму от ботов.
В редакторе MODX откройте страницу с формой на FormIt.
В параметр preHooks добавьте crawlerDetectBlock.
[[!FormIt?
&preHooks=`crawlerDetectBlock`
&hooks=`email,redirect`
&validate=`name:required,email:required:email`
&redirectTo=`[[*id]]`
&emailTo=`[[++emailsender]]`
&emailSubject=`Обратная связь`
]]
[[+fi.validation_error_message]]
<form action="[[~[[*id]]]]" method="post">
<input type="text" name="name" value="[[+fi.name]]" />
<input type="email" name="email" value="[[+fi.email]]" />
<button type="submit" name="submit">Отправить</button>
</form>{$modx->runSnippet('FormIt', [
'preHooks' => 'crawlerDetectBlock',
'hooks' => 'email,redirect',
'validate' => 'name:required,email:required:email',
'redirectTo' => $modx->resource->id,
'emailTo' => $modx->getOption('emailsender'),
'emailSubject' => 'Обратная связь'
])}
{$modx->getPlaceholder('fi.validation_error_message')}
<form action="{$modx->makeUrl($modx->resource->id)}" method="post">
<input type="text" name="name" value="{$modx->getPlaceholder('fi.name')}" />
<input type="email" name="email" value="{$modx->getPlaceholder('fi.email')}" />
<button type="submit" name="submit">Отправить</button>
</form>Сообщение при блокировке ботом выводится через [[+fi.validation_error_message]] (MODX) или {$modx->getPlaceholder('fi.validation_error_message')} (Fenom). Текст задаётся в системных настройках.
Форма защищена от ботов.
isCrawler и crawlerDetectBlock