Skip to content

Commit 8c44d0d

Browse files
authored
Create scxcaptchaajaxform.md
1 parent 6d0af59 commit 8c44d0d

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: scxcaptchaAjaxForm
3+
description: Неблокирующая числовая CAPTCHA (5 цифр) для AjaxForm и FormIt. Простая для человека, сложнее для ботов.
4+
logo: https://sait-modx.by/assets/images/components/scxcaptchaajaxform/logo_captha.png
5+
author: sait-modx.by
6+
---
7+
8+
# scxcaptchaAjaxForm
9+
10+
Неблокирующая числовая CAPTCHA (5 цифр) для **AjaxForm** и **FormIt**.
11+
Простая для человека, сложнее для ботов. Все имена и классы имеют префикс `scx_`.
12+
13+
**Документация:**
14+
15+
## Быстрый старт
16+
17+
```modx
18+
[[!ScxCaptchaAjaxForm]]
19+
```
20+
### AjaxForm
21+
```modx
22+
[[!AjaxForm?
23+
&snippet=`FormIt`
24+
&form=`tpl.AjaxForm.example`
25+
&hooks=`ScxCaptchaAjaxFormHook,email`
26+
&validate=`name:required,email:required:email,scx_code:required`
27+
]]
28+
```
29+
### FormIt
30+
```modx
31+
[[!FormIt?
32+
&hooks=`ScxCaptchaAjaxFormHook,email`
33+
&validate=`name:required,email:required:email,scx_code:required`
34+
]]
35+
[[!ScxCaptchaAjaxForm]]
36+
```
37+
## Требования
38+
MODX Revolution 2.8+ или 3.x
39+
40+
PHP 7.2+ (рекомендуется 7.4)
41+
42+
GD + TrueType (для TTF-шрифта)
43+
44+
## Ключевые особенности
45+
- Некэшируемый вызов сниппета.
46+
- Поддержка ассетов: head (по умолчанию), inline, none.
47+
- Валидация через хук ScxCaptchaAjaxFormHook.
48+
- Поля формы: scx_hp, scx_ts, scx_code, scx_token.
49+
50+
### Параметры сниппета
51+
52+
Параметр По умолчанию Описание
53+
ttl 1200 Время жизни токена (сек.)
54+
includeAssets head Как подключать CSS/JS: head, inline, none
55+
render 1 Возвращать HTML капчи (1) или только ассеты (0)
56+
57+
## Отладка
58+
Добавьте &debug=1 к URL captcha.php?...&debug=1 — выведет служебные данные.
59+
60+
Если видите Bad token, проверьте:
61+
- некэшируемый вызов,
62+
- один хост/поддомен,
63+
- корректное подключение ассетов,
64+
- наличие скрытого af_action у AjaxForm.

0 commit comments

Comments
 (0)