function user_register_form

Form builder; the user registration form.

See also




Related topics

5 string references to 'user_register_form'
locale_form_alter in modules/locale/locale.module
Implements hook_form_alter().
openid_authentication in modules/openid/openid.module
Authenticate a user or attempt registration.
profile_form_alter in modules/profile/profile.module
Implements hook_form_alter().
user_admin in modules/user/
Page callback: Generates the appropriate user administration form.
user_menu in modules/user/user.module
Implements hook_menu().


modules/user/user.module, line 3907


function user_register_form($form, &$form_state) {
    global $user;
    $admin = user_access('administer users');
    // Pass access information to the submit handler. Running an access check
    // inside the submit function interferes with form processing and breaks
    // hook_form_alter().
    $form['administer_users'] = array(
        '#type' => 'value',
        '#value' => $admin,
    // If we aren't admin but already logged on, go to the user page instead.
    if (!$admin && $user->uid) {
        drupal_goto('user/' . $user->uid);
    $form['#user'] = drupal_anonymous_user();
    $form['#user_category'] = 'register';
    $form['#attached']['library'][] = array(
    $form['#attributes']['class'][] = 'user-info-from-cookie';
    // Start with the default user account fields.
    user_account_form($form, $form_state);
    // Attach field widgets, and hide the ones where the 'user_register_form'
    // setting is not on.
    $langcode = entity_language('user', $form['#user']);
    field_attach_form('user', $form['#user'], $form, $form_state, $langcode);
    foreach (field_info_instances('user', 'user') as $field_name => $instance) {
        if (empty($instance['settings']['user_register_form'])) {
            $form[$field_name]['#access'] = FALSE;
    if ($admin) {
        // Redirect back to page which initiated the create request;
        // usually admin/people/create.
        $form_state['redirect'] = $_GET['q'];
    $form['actions'] = array(
        '#type' => 'actions',
    $form['actions']['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Create new account'),
    $form['#validate'][] = 'user_register_validate';
    // Add the final user registration form submit handler.
    $form['#submit'][] = 'user_register_submit';
    return $form;

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.