Take the 2-minute tour ×
Drupal Answers is a question and answer site for Drupal developers and administrators. It's 100% free, no registration required.

Drupal uses email for user registration purpose. Instead of the out-of-box Drupal user registration that requires user to specify a username and email address, I want a full-fledged user registration form ( with captcha, user profile etc, like yahoo or gmail registration) for my website.

Is there a module that does that?

share|improve this question

migrated from stackoverflow.com Jun 25 '11 at 10:59

This question came from our site for professional and enthusiast programmers.

6 Answers 6

up vote 22 down vote accepted

There are a couple of options for this.

To get profile fields the most common solution is the profile module included in Drupal core. Go to Administer > Site building > Modules and enable it under core-optional. Then you can configure the Profile module at Administer > User settings > Profile and in the settings you can say whether the fields will show during registration or not.

To get a captcha during registration you will need one of a couple of modules:

I prefer Mollom because it works very well without being annoying, but it sends your content to an external site to do some verification.

There is also Captcha which is less reliable than Mollom but which keeps the content inside your site.

share|improve this answer
    
Using the content profile module is a better choice instead of the standard profile module. The content profile creates nodes. –  eddy147 Sep 12 '09 at 21:27
2  
Blech. Not really. Content profile is a bunch of overhead. If core profile works well for the user's needs (which it does in this case) then it is much simpler than content profile. "Content profile creates nodes" but Nodes are not always better! –  greggles Mar 22 '11 at 10:05

The typical choice for this is to use a combination of content_profile to create the user profile as a node, content_profile_registration, a component of content_profile, to create such a profile at registration using such a full-fledged node edit form, and possibly auto_assign_role if you have multiple types of users with distinct profile types.

For the captcha part, Mollom is an interesting service, as Greggles suggested, but you might also want to consider reCaptcha, which is good too at even doubles as a public service.

share|improve this answer

It would appear that the recommended process now is creating fields. From the Drupal site:

The Profile module is deprecated in Drupal 7. It is kept around only to provide an upgrade path for Drupal 6 sites that used it. Use of the Profile2 module or creating fields directly on the user entity is recommended in Drupal 7.

share|improve this answer

ReCaptcha for sure.

You can also have the simple core profile fields show up in registration if you want to stay lean. Though this often requires you to theme user_profile.tpl.php if you want that page public.

PS: The Email Registration module may be of user, as well as LoginToboggan.

share|improve this answer

With regards "full-fledged user registration form", you can go to Admin >> Use Management >> Profiles then create/customize your fields and make sure that you tick the "Visible in user registration form" option.

share|improve this answer

If I edit user_profile.tpl.php then I can easily maintain registration part as I want.

<?php
   // Validate the username:
   if (user_access('change own username') || user_access('administer users') || arg(1) == 'register') {
     if ($error = user_validate_name($edit['name'])) {
       form_set_error('name', $error);
     }
     else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(name) = LOWER('%s')", $uid, $edit['name'])) > 0) {
       form_set_error('name', t('The name %name is already taken.', array('%name' => $edit['name'])));
     }
     else if (drupal_is_denied('user', $edit['name'])) {
       form_set_error('name', t('The name %name has been denied access.', array('%name' => $edit['name'])));
     }
   }
?>
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.