2013-11-04 4 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

[프로필 2] (https://drupal.org/project/profile2)라는 모듈이 있지만 폼에 다른 필드 만 추가합니다. 여전히 사용자 정의 모듈을 만드는 것이 좋습니다. 그래도 유효성 검사를 직접 수행해야합니다. 내가 제공 한 코드는 꽤 많이 있습니다. – keenydev

+0

감사합니다. 6748485468 –

관련 문제