Капча в modx в своей форме

При поиске капчи для произвольной формы оказалось, что большинство дополнений работают только со стандартными формами, созданными с помощью дополнений. В итоге выбор остановился на RealCaptcha, она подходила по всем параметрам.
1. Скачиваем дополнение и устанавливаем.
2. Создаем форму, в которой необходимо вывести капчу:
3. Добавляем в форму капчу (вставляем чанк в нужное место в форме).

[[$RealCaptcha]]

В чанке RealCaptcha можно отредактировать ее внешний вид. Для того чтобы создать кнопку «Обновить капчу», можно сделать в чанке див нужного вида, при клике на который будет обновляться атрибут src у картинки с капчей, например, так:

 $("#cptch img").attr('src', '/assets/components/realcaptcha/kcaptcha/index.php?r=' + Math.random());

Тогда картинка будет меняться.

4. Обработка формы и проверка капчи.
Во-первых, в файле, который будет обрабатывать форму, необходимо подключить методы MODX (это есть в отдельной статье).
Правильный код капчи хранится в сессии, поэтому проверяем то, что ввел пользователь так:

//подключаем методы modx
define('MODX_CORE_PATH', $_SERVER['DOCUMENT_ROOT']. '/core/');
define('MODX_CONFIG_KEY', 'config');
require_once $_SERVER['DOCUMENT_ROOT']. "/core/model/modx/modx.class.php";
require_once ( MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php' ); 
$modx = new modX();
$modx->initialize('web');
//проверяем ввод капчи
if (isset($_SESSION['realcaptcha'])) {
			if ($_SESSION['realcaptcha'] == md5('realadmin.ru'.StrToLower($_REQUEST['captcha']).'realadmin.ru') ) $error = '';
			else $error = 'Ошибка. Каптча введена неверно!';
		} else $error = 'Ошибка. Каптча введена неверно!';

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *