В настоящее время после регистрации (если не установлена в настройках галочка о подтверждении через почту) выходит сообщение, что всё хорошо, теперьл можно войти под своим логином и паролем...
А как сделать так, чтобы после регистрации, раз уж всё хорошо, чтобы человек автоматически заходил под своим логином и паролем, а не заново нажимал кнопку войти и т.д....
У меня просто так около 50 пользователей ушло, думая о том, что сделали что-то не так...
Хелп составлен, но многие его читают? да никто почти...
И надеяться но то, что все пользователи грамотные в плане работы с интернетом тоже не стоит… с каждым днем количество пользователей в инете растет, а за счет кого? за счет того, кто еще мало разбирается в инете...
Хотелось бы взять правило "Чем меньше думают пользователи, тем лучше" за основу. Тогда будет успех.
Так как сделать описанное выше?
Автоматический ВХОД в систему сразу после РЕГИСТРАЦИИ
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
проблемка
#1
9 октября 2011 в 11:33
#2
9 октября 2011 в 11:46
разумно. не стоит лишний раз напрягать пользователя. очень удобно когда после реги тебя сразу авторизовывает
#3
9 октября 2011 в 12:13
ага… знать бы еще, как это сделать 😊
Сегодня в 11:31
#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 строки
вместо этих строчек вставляем следующий код:
Открываем файл /components/registration/frontend.php и находим следующие строки, начиная примерно с 261 строки
$inPage->includeTemplateFile('special/regcomplete.php'); if ($cfg['send_greetmsg']){ $model->sendGreetsMessage($new_user_id, $cfg['greetmsg']); } $inCore->halt();
//$inPage->includeTemplateFile('special/regcomplete.php'); if ($cfg['send_greetmsg']){ $model->sendGreetsMessage($new_user_id, $cfg['greetmsg']); } //начало хака для автоматической авторизации после регистрации $sql = "SELECT * FROM cms_users WHERE id='{$new_user_id}' "; $aut_result = $inDB->query($sql); if($inDB->num_rows($aut_result)==1) { $current_ip = $_SERVER['REMOTE_ADDR']; $user = $inDB->fetch_assoc($aut_result); $_SESSION['user'] = cmsUser::createUser($user); cmsCore::callEvent('USER_LOGIN', $_SESSION['user']); $inUser->dropStatTimer(); $inDB->query("UPDATE cms_users SET logdate = NOW(), last_ip = '$current_ip', is_logged_once = 1 WHERE id = ".$user['id']) ; switch($cfg['first_auth_redirect']){ case 'none': $url = cmsUser::getProfileURL($user['login']); break; case 'index': $url = '/'; break; case 'profile': $url = cmsUser::getProfileURL($user['login']); break; case 'editprofile': $url = '/users/'.$user['id'].'/editprofile.html'; break; } //редирект $inCore->redirect($url); } else { $inCore->redirect('/auth/error.html'); } //конец хака для автоматической авторизации после регистрации // $inCore->halt();
#9
9 октября 2011 в 17:43
В коде оставил оригинальные строчки, просто закомментировавь их. Не обращайте внимания . Проверил на локалхосте, работает. По умолчанию редиректит в профиль пользователя. Если в настройках компонента указано иное, то по настройкам.
#10
9 октября 2011 в 18:34
кул. спасибо!!! попробую поставить))
#11
9 октября 2011 в 18:58
отпишитесь о результате, так как я сегодня не смогу еще поставить но результат знать хочется)
Марат, СПАСИБО!!!
Марат, СПАСИБО!!!
#12
9 октября 2011 в 19:10
работает. глюков не обнаружено вроде) Спасибо еще раз))отпишитесь о результате
#13
9 октября 2011 в 23:50
этот ответ Марата мне или остальным?
#14
10 октября 2011 в 00:49
Марат большой плюс тебе за этот хак, его очень не хватало! Но не мог ты ты доработать чтоб еще и приветственное сообщение приходило которое до этого хака было! Я например использую его в своих целях и мне очень не хватает его! Думаю многим тоже понадобиться! Спасибо заранее и ++++++
у меня не хочет работать. после заполнения и нажатия регистрация редирект не происходит. Появляется пустая страница и адрес её — /registration
-------------
Заменил в сточке case 'editprofile': $url = '/users/'.$user['id'].'/editprofile.html'; break;
на case 'editprofile': $url = '/users/'.$user['id']; break;
Теперь всё замечательно заработало! спасибо!
-------------
Заменил в сточке case 'editprofile': $url = '/users/'.$user['id'].'/editprofile.html'; break;
на case 'editprofile': $url = '/users/'.$user['id']; break;
Теперь всё замечательно заработало! спасибо!