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

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

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

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


///....
$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' => '<script type="text/javascript">'.$js.'</script>',
);
//....

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


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

Этот прием можно применить не только к мат. капче, но тут дело уже за вами, дерзайте :)

Прикрепленный файлРазмер
hidden_captcha-5.x-1.3.zip1.66 кб
hidden_captcha-6.x-1.2.zip1.67 кб