Автоматический ВХОД в систему сразу после РЕГИСТРАЦИИ

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

проблемка

#1 9 октября 2011 в 11:33
В настоящее время после регистрации (если не установлена в настройках галочка о подтверждении через почту) выходит сообщение, что всё хорошо, теперьл можно войти под своим логином и паролем...
А как сделать так, чтобы после регистрации, раз уж всё хорошо, чтобы человек автоматически заходил под своим логином и паролем, а не заново нажимал кнопку войти и т.д....
У меня просто так около 50 пользователей ушло, думая о том, что сделали что-то не так...
Хелп составлен, но многие его читают? да никто почти...
И надеяться но то, что все пользователи грамотные в плане работы с интернетом тоже не стоит… с каждым днем количество пользователей в инете растет, а за счет кого? за счет того, кто еще мало разбирается в инете...
Хотелось бы взять правило "Чем меньше думают пользователи, тем лучше" за основу. Тогда будет успех.
Так как сделать описанное выше?
#2 9 октября 2011 в 11:46
разумно. не стоит лишний раз напрягать пользователя. очень удобно когда после реги тебя сразу авторизовывает
#3 9 октября 2011 в 12:13
ага… знать бы еще, как это сделать 😊
#4 9 октября 2011 в 12:15
Присоединяюсь к вопросу.
#5 9 октября 2011 в 14:22
Актуально, хотелось бы решение.
#6 9 октября 2011 в 14:23
присоединяюсь
#7 9 октября 2011 в 17:15
а что делать, если авторизации вообще выкидывает с сайта?
#8 9 октября 2011 в 17:38
Вот накидал тут )
Открываем файл /components/registration/frontend.php и находим следующие строки, начиная примерно с 261 строки
  1. $inPage->includeTemplateFile('special/regcomplete.php');
  2.  
  3. if ($cfg['send_greetmsg']){ $model->sendGreetsMessage($new_user_id, $cfg['greetmsg']); }
  4. $inCore->halt();
вместо этих строчек вставляем следующий код:
  1. //$inPage->includeTemplateFile('special/regcomplete.php');
  2.  
  3. if ($cfg['send_greetmsg']){ $model->sendGreetsMessage($new_user_id, $cfg['greetmsg']); }
  4. //начало хака для автоматической авторизации после регистрации
  5. $sql = "SELECT *
  6. FROM cms_users
  7. WHERE id='{$new_user_id}' ";
  8. $aut_result = $inDB->query($sql);
  9.  
  10. if($inDB->num_rows($aut_result)==1) {
  11. $current_ip = $_SERVER['REMOTE_ADDR'];
  12. $user = $inDB->fetch_assoc($aut_result);
  13.  
  14. $_SESSION['user'] = cmsUser::createUser($user);
  15.  
  16. cmsCore::callEvent('USER_LOGIN', $_SESSION['user']);
  17.  
  18. $inUser->dropStatTimer();
  19. $inDB->query("UPDATE cms_users SET logdate = NOW(), last_ip = '$current_ip', is_logged_once = 1 WHERE id = ".$user['id']) ;
  20.  
  21. switch($cfg['first_auth_redirect']){
  22. case 'none': $url = cmsUser::getProfileURL($user['login']); break;
  23. case 'index': $url = '/'; break;
  24. case 'profile': $url = cmsUser::getProfileURL($user['login']); break;
  25. case 'editprofile': $url = '/users/'.$user['id'].'/editprofile.html'; break;
  26.  
  27. }
  28.  
  29. //редирект
  30. $inCore->redirect($url);
  31. } else {
  32. $inCore->redirect('/auth/error.html');
  33. }
  34.  
  35. //конец хака для автоматической авторизации после регистрации
  36. // $inCore->halt();
#9 9 октября 2011 в 17:43
В коде оставил оригинальные строчки, просто закомментировавь их. Не обращайте внимания smile. Проверил на локалхосте, работает. По умолчанию редиректит в профиль пользователя. Если в настройках компонента указано иное, то по настройкам.
#10 9 октября 2011 в 18:34
кул. спасибо!!! попробую поставить))
#11 9 октября 2011 в 18:58
отпишитесь о результате, так как я сегодня не смогу еще поставить но результат знать хочется)
Марат, СПАСИБО!!!
#12 9 октября 2011 в 19:10

отпишитесь о результате

Project-S
работает. глюков не обнаружено вроде) Спасибо еще раз))
#13 9 октября 2011 в 23:50
этот ответ Марата мне или остальным?
#14 10 октября 2011 в 00:49
Марат большой плюс тебе за этот хак, его очень не хватало! Но не мог ты ты доработать чтоб еще и приветственное сообщение приходило которое до этого хака было! Я например использую его в своих целях и мне очень не хватает его! Думаю многим тоже понадобиться! Спасибо заранее и ++++++
#15 10 октября 2011 в 02:33
у меня не хочет работать. после заполнения и нажатия регистрация редирект не происходит. Появляется пустая страница и адрес её — /registration

-------------
Заменил в сточке case 'editprofile': $url = '/users/'.$user['id'].'/editprofile.html'; break;
на case 'editprofile': $url = '/users/'.$user['id']; break;

Теперь всё замечательно заработало! спасибо!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.