Защита форм и предотвращение спама - неотъемлемая часть процесса работы над своим проектом. Разработчики компонента Chronoforms 5 предлагают для этих целей довольно широкий набор инструментов, способный успешно обеспечивать высокий уровень безопасности для форм обратной связи на сайтах Joomla 3.

Условно эти инструменты можно разделить на основные и дополнительные.

К основным относятся  «Security Question», «Recaptcha», «Captcha». Для функционирования каждого из них необходимо размещение визуальных элементов на на странице формы, требующих от пользователя определенных действий.

Дополнительные средства защиты, напротив, не требуют непосредственного участия пользователя. Они, как правило, проверяют поведенческие факторы (либо их отсутствие), значения полей, и пользователь может вообще не подозревать об их существовании на форме до тех пор, пока не попадет «под подозрение». Инструмент «Submit Limit», как раз и относится к таким элементам. 

Эта функция служит для предотвращения многократной отправки сообщений пользователя в течении установленного интервала времени и может работать совместно с любым из основных элементов обеспечения безопасности.

Настройка Submit Limit на форме обратной связи Chronoforms 5

Инструмент «Submit Limit» представляет собой функцию и имеет собственное событие «On fail».

Для того, чтобы добавить этот обработчик в код формы, необходимо перейти во вкладку редактора «Установка» (Setup) и выбрать в группе «Security» (меню слева) элемент «Submit Limit». Расположить его нужно в теле кода обработки события «On submit» либо первым сверху, либо сразу вслед за основным инструментом обеспечения безопасности (если таковой имеется на форме).

Элемент Submit Limit для защиты форм от спама в Chronoforms 5. Размещение на форме

Рис. 1

Далее нужно открыть окно редактирования нажатием на кнопку «Edit» в панели управления элементом.

Элемент Submit Limit для защиты форм от спама в Chronoforms 5. Настройка

Рис. 2

Настроек у этого обработчика всего две:

  1. «Ограничение по времени» (Time limit) — интервал в секундах между отправками сообщений. Указывается в виде целого числа.
  2. «Сообщение об ошибке» (Error message) — текст сообщения об ошибке, которое будет отображено, если пользователь сайта превысит лимит отправок формы.

Функция имеет собственное событие «On fail», наступаеющее при попытке повторной отправки формы до того, как истекло время, указанное в настройках. Для того, чтобы это условие действительно сработало как надо, требуется прерывание дальнейшей обработки формы при каждом отрицательном сигнале обработчика.  Для этих целей в группе «Basic» предусмотрена другая функция  — «Event loop». Ее следует разместить в теле собственного события «On fail» элемента «Submit Limit» так, как показано на  рисунке 1 (см. выше). Эта функция по умолчанию уже имеет все необходимые настройки и в данном случае не требует никакой дополнительной корректировки. 

Если обработчик «Submit Limit» установлен и настроен правильно, вы не сможете отправить за время, указанное в его настройках, более одного сообщения.