23

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?

6 Answers 6

24

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 HCaptcha because it works very well and even can earn you some money, but it sends your content to an external site to do some verification.

There is also Captcha which provides integration with other options.

2
  • Using the content profile module is a better choice instead of the standard profile module. The content profile creates nodes.
    – eddy147
    Commented Sep 12, 2009 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
    Commented Mar 22, 2011 at 10:05
11

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.

8

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.

1

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.

1

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.

0

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'])));
     }
   }
?>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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