ModX дополнительная защита от спама

Данный метод прокатит практически в любом случае, логика проста, спам-боты заполняют все поля форм, и за частую отключат js, по этому добавляем с помощью js в форму поле, если это поле будет отсутствовать или будет заполнено, форма не отправиться.

Добавляем JavaScript.

JQuery

$(function(){
    // Антиспам
    $('.ajax_form').append('<input type="text" name="org" value="" class="_org" style="visability:hidden; height: 0; width: 0; padding: 0; border:none;"/>')
    // Антиспам х  
})  

Добавляем снипет, именуем например validate.

Снипет validate

<?php
function text_error(){
    return false;
    die();
}
if(isset($_POST['org'])){
    if($hook->getValue('org')!=''){
            $modx->log(xPDO::LOG_LEVEL_ERROR, 'Ошибка заполнения формы: не пустое поле антиспама');
            $modx->log(xPDO::LOG_LEVEL_ERROR, print_r($_POST, 1));
            text_error();
    }else{
        return true;
    }
}else{
    $modx->log(xPDO::LOG_LEVEL_ERROR, 'Ошибка заполнения формы: нет поля антиспама');
    $modx->log(xPDO::LOG_LEVEL_ERROR, print_r($_POST, 1));
    text_error();
}

При вызове формы в чанке добавляем хук с названием этого снипета (validate).

Добавить в формы

&hooks=`validate, email, FormItSaveForm`

 

Так же с моим портфолио можно ознакомиться на любой из представленной социальной сети, на своих страницах я публикую посты о своих работах, заданиях и целях.

Для связи со мной можно воспользоваться любой социальной сетью,
или написать на почту:

С моим резюме можно ознакомиться по ссылке:

© 2020-2024 Портфолио Юдина Александра г.Пенза. Все права защищены