Программно создать пользователя

Раздел форума: 

Здравствуйте, Иван!

 

Читаю Ваш сайт и смотрю видеоуроки с большой пользой для себя. Решил к Вам обратиться за консультацией. Я создаю программно пользователя на сайте drupal 7 и сразу же делаю логин. В базе пользователей вся информация появляется надлежащим образом. Видно, что пользователь создался и логин выполнился. НО! Не происходит перехода на следующую страницу, где написано Моя учетная запись и пр. Не исчезает форма входа. Если логинится с только что созданным логином с помощью стандартной формы – все работает. Я пытался на jqueryформу создать, подобную стандартной с ее actionи всем остальным. Но это не привело ни к каким положительным результатам.

Что я не делаю? Может быть Вы сможете посоветовать?

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Прикрепить
Максимальный размер файла: 128 МБ.
Разрешённые типы файлов: txt doc docx rar zip xls xlsx pdf odf odt jpg jpeg gif png psd rtf.

Здравствуйте, используйте

Здравствуйте, используйте модуль ajax_login или что-нибудь подобное. Подгрузите стандартную друпаловскую форму и через нее создавайте. Посмотрите на api.drupal.org функции, там наверняка должны быть функция user_save и хуки hook_user_insert.

Вот здесь как программно создать пользователя:

//This will generate a random password, you could set your own here
  $password = user_password(8);
 
  //set up the user fields
  $fields = array(
    'name' => 'user_name',
    'mail' => 'user_name@example.com',
    'pass' => $password,
    'status' => 1,
    'init' => 'email address',
    'roles' => array(
      DRUPAL_AUTHENTICATED_RID => 'authenticated user',
    ),
  );
 
  //the first parameter is left blank so a new user is created
  $account = user_save('', $fields);
 
  // If you want to send the welcome email, use the following code
 
  // Manually set the password so it appears in the e-mail.
  $account->password = $fields['pass'];
 
  // Send the e-mail through the user module.
  drupal_mail('user', 'register_no_approval_required', $email, NULL, array('account' => $account), variable_get('site_mail', 'noreply@example..com'));