@nikolay_akhmetyanov
Front-end developer

Как избавиться от спама formit + AjaxForm modx?

[[!AjaxForm? 
  &snippet=`FormIt`
  &form=`tpl.AjaxForm.main-form`
  &hooks=`math,spam,email,FormItSaveForm`
  &emailSubject=`Новое сообщение с формы обратной связи`
  &emailTo=`se@yandex.ru, b@if.com, fa@strs.com`
  &emailFrom=`se@ya.ru`
  &validate=`name:required,phone:required`
  &validationErrorMessage=`В форме содержатся ошибки!`
  &successMessage=`Сообщение успешно отправлено`
]]
<div class="main-form">
  <div class="main-form__container container">
    <div class="main-form__row row">
      <div class="main-form__col col-12 col-lg-9">
        <h2 class="main-form__title">Оставьте свои данные,<br>мы расчитаем стоимость и перезвоним вам.
        </h2>
      </div>
    </div>
    <form name="[[*id]]-main" action="" class="main-form__form ajax_form af_example">
      <div class="main-form__row-form row"> 
        <div class="main-form__col col-12 col-lg-4 col-xl-3">
          <label class="main-form__label"> <span> Контактное лицо</span>
            <input class="main-form__input" name="name" type="text" placeholder="Введите имя"/>
          </label>
        </div>
        <div class="main-form__col col-12 col-lg-4 col-xl-3">
          <label class="main-form__label"> <span> Контактный телефон</span>
            <input class="main-form__input" name="phone" type="tel" placeholder="Введите телефон"/>
          </label>
        </div>
        <div class="main-form__col col-12 col-lg-4 col-xl-3">
          <label class="main-form__label"> <span> E-mail</span>
            <input class="main-form__input" name="email" type="email" placeholder="Введите email"/>
          </label>
        </div>
      </div>
      <div class="main-form__row-form row"> 
        <div class="main-form__col col-12 col-lg-4 col-xl-3">
          <label class="main-form__label"> <span> Наименование компании</span>
            <input class="main-form__input" name="organization" type="text" placeholder="Введите наименование"/>
          </label>
        </div>
        <div class="main-form__col col-12 col-lg-8 col-xl-6">
          <label class="main-form__label"> <span> Ваше сообщение</span>
            <textarea class="main-form__input" name="message" type="text" placeholder="Введите текст"></textarea>
          </label>
        </div>
      </div>
      
      <div class="main-form__row-form row align-items-center">
        <div class="main-form__col col-12 col-lg-5">
          <div class="main-form__agree-konf">
             Нажимая кнопку “Отправить заявку”, вы соглашаетесь с настоящей <a href="/legal.html">политикой конфиденциальности</a>
          </div>
        </div>
        <div class="main-form__col col-12 col-lg-7 col-xl-4 d-flex align-items-end justify-content-end">
          <button class="main-form__btn-show btn btn btn--transparent" type="button">Расширенная форма
          </button>
          <button class="main-form__btn-submit btn" type="submit">Отправить
          </button>
        </div>
      </div>
      [[+fi.success:is=`1`:then=`
        <div class="alert alert-success">[[+fi.successMessage]]</div>
        `]]
      [[+fi.validation_error:is=`1`:then=`
        <div class="alert alert-danger">[[+fi.validation_error_message]]</div>
        `]]
    </form>
  </div>
</div>
  • Вопрос задан
  • 848 просмотров
Пригласить эксперта
Ответы на вопрос 1
an-tar
@an-tar
Full stack web developer
Обычно для Formit один или комбинация из нескольких вариантов:
1.Google Recaptcha V2
2. Math hook
3. Spam hook (проверка по пустоте скрытого поля)
4. Проверка по спам-базам

Несколько полезных линков:
Раз
Два
Три
Четыре
Также косвенно полезно отправлять почту черeз smtp, иметь MX записи на своем домене, корректно настроить SPF и DKIM заголовки сервера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы