Автоматический вход пользователя сразу после регистрации

Главные вкладки

Аватар пользователя denn.kulikoff denn.kulikoff 9 апреля 2010 в 11:42

Здравствуйте!

Необходимо сделать так, чтобы сразу после заполнения регистрационной формы и нажатия кнопки "зарегистрироваться", пользователь становился авторизованным (конечно при условии что его пароль удовлетворяет и имя пользователя еще не занято).

Форма регистрации выводится на странице моего модуля, я ее вызываю через drupal_get_form('user_register');

Целый час гуглил, нигде нет даже намека на решение, или я неправильно гуглил?

Комментарии

Аватар пользователя Serge66 Serge66 9 апреля 2010 в 11:51

Здесь /admin/user/settings эту строчку видели? «Требуется подтверждение по электронной почте, когда посетитель создает учетную запись»

Аватар пользователя denn.kulikoff denn.kulikoff 9 апреля 2010 в 12:08

Видел, и что? Галочку естественно снял.

После нажатия на "Зарегистрироваться" запись о новом пользователе в таблицу "users" делается, но $user->uid остается равным 0, то есть пользователь остается анонимным, авторизации не происходит.

Аватар пользователя Stan.Ezersky Stan.Ezersky 9 апреля 2010 в 12:10

"denn.kulikoff" wrote:
Форма регистрации выводится на странице моего модуля, я ее вызываю через drupal_get_form('user_register');
"denn.kulikoff" wrote:
После нажатия на "Зарегистрироваться" запись о новом пользователе в таблицу "users" делается, но $user->uid остается равным 0, то есть пользователь остается анонимным

Значит проблема в вашем модуле

Аватар пользователя ygerasimov@drupal.org ygerasimov@drup... 9 апреля 2010 в 14:18

А! Значительно лучше будет, если мы знаем логин и пароль, запустить от его лица drupal_execute на форму логина. Тогда стартуют все хуки как при обычном логине.

Я не уверен заработает ли, но стоит попробовать.

Аватар пользователя Anton L. Safin Anton L. Safin 9 апреля 2010 в 19:45

Да уж, если еще полгода назад почти на все вопросы по Друпалу я отвечал "пишите модуль", то сейчас чаще отвечаю "посмотрите на модуль XXX".

В общем, посмотрите на модуль LoginToboggan:

  1. Allow users to login using either their username OR their e-mail address.
  2. Allow users to login immediately.
  3. Provide a login form on Access Denied pages for non-logged-in (anonymous) users.
  4. The module provides two login block options: One uses JavaScript to display the form within the block immediately upon clicking "log in". The other brings the user to a separate page, but returns the user to their original page upon login.
  5. Customize the registration form with two e-mail fields to ensure accuracy.
  6. Optionally redirect the user to a specific page when using the 'immediate login' feature.
  7. Optionally redirect the user to a specific page upon validation of their e-mail address.
  8. Optionally display a user message indicating a successful login.
  9. Optionally have unvalidated users purged from the system at a pre-defined interval (please read the CAVEATS section of INSTALL.txt for important information on configuring this feature!).