2013-11-04 39 views
2

我正在为手机评论和信息设置基本网站。我不断收到这些虚假帐户在我的网站上注册并发布不合适的内容。避免机器人在您的网站上注册

我刚刚安装了CAPTCHA和形象CAPTCHA模块,但这似乎并没有被阻止他们。

什么是避免这些假账户的最佳方式?

谢谢。

回答

1

另一种策略是在用户注册表单中添加另一个字段。大多数机器人不知道哪些字段是必需的,所以他们填写所有内容。如果用户在新字段中输入值,则不要创建帐户。您可以使用CSS隐藏UI中的字段,这样真实的人将无法看到该字段并输入任何内容。详细解释请阅读Easy spam prevention using hidden forms

要实现此功能为您的Drupal站点,你需要创建一个模块,以改变用户登记表,并为它创建一个验证。

另一个字段添加到用户登记表:

function mymodule_form_alter(&$form, $form_state, $form_id) { 
    if($form_id == 'user_register_form') { 
    $form['field_fname'] = array(
     '#title' => 'Answer if you are a bot', 
     '#type' => 'textfield', 
    ); 
    $form['#validate'][] = 'mymodule_user_bot_validate'; 
    } 
} 

添加验证:

function mymodule_user_bot_validate($form, &$form_state) { 
    if($form['field_fname']['#value'] != '') { 
    form_set_error('bot_prevention', t('Could not create your account.')); 
    drupal_goto('user/register'); 
    } 
} 

然后隐藏与CSS的领域。

+0

有没有一个模块已经这样做? –

+1

有一个称为[Profile 2](https://drupal.org/project/profile2)的模块,但它只在表单中添加其他字段。您仍然需要自己进行验证,所以我仍然建议您创建自定义模块。我提供的代码非常多。 – keenydev

+0

谢谢。 6748485468 –