ShvetsGroup

 

Модуль «Скрытая капча»

  • neochief's picture
0 comments

Модуль «Скрытая капча»

Статья эвакуирована с DrupalDance.com

Представляю вашему вниманию свой мини-модуль "Скрытая капча". Фишка этого модуля в том, что поле для ввода капчи является скрытым и заполняется джаваскриптом автоматически. Т.е. пользователь вообще не догадывается о наличии капчи на форме. По сути, это та самая элементарная джава-скриптовая капча против спамботов, о которой каждый хоть раз задумывался. Для пользователей без джаваскрипта отображается стандартная капча.

Плюс: можно сказать "прощай" уродливой друпаловской капче и процессу капчезаполенния вообще. Как следствие - довольные юзера.
Минус: от нацеленной спам-атаки модуль не спасет (а что спасет?)

Для тех, кому интересно как он работает

Данный модуль основан на стандартной мат. капче с небольшой модификацией.
Кусок модуля:


///....
$js = '$(".captcha").hide(); $("#edit-captcha-response").attr("value","'.$answer.'");';

$result['form']['captcha_response'] = array(
'#type' => 'textfield',
'#title' => t('Math Question'),
'#description' => t('Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.'),
'#field_prefix' => t('@x + @y = ', array('@x' => $x, '@y' => $y)),
'#size' => 4,
'#maxlength' => 2,
'#required' => TRUE,
'#suffix' => '

',
);
//....

Этот суффикс вставляет джаваскрипт, который и скрывает форму, а потом заполняет поле.


$js = '$(".captcha").hide(); $("#edit-captcha-response").attr("value","'.$answer.'");';
//....
'#suffix' => '

',

UPD: Выпущена скрытая Image captcha.

Got anything to add?