Модуль «Скрытая капча»
Статья эвакуирована с 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?