Noxter Posted April 4, 2013 Report Share Posted April 4, 2013 В виду того что автор темы забил на свое решение и не хочет его привести в рабочий вид, я решил написать небольшой туториал по авторизации в интернет-магазине через соц. сети.Также есть платное решение кому нужно.Что это дает?- Автоматический вход клиента без регистрации в интернет-магазин- Автоматическая регистрация покупателя который зашел через соц. сеть- Сбор потенциальных покупателей на летуИ так приступим.В шаблон index.tpl в нужном Вам месте вставим следующий код: <!-- Ulogin --> <script src="http://ulogin.ru/js/ulogin.js"></script> <div id="uLogin" data-ulogin="display=small;fields=first_name,last_name,email,phone,city;providers=vkontakte,facebook,odnoklassniki,mailru;hidden=other;redirect_uri=http://ваш-сайт.ru/user/login"></div> <!-- end --> В фале view/LoginView.php после 64-й строки вставим следующий код: // Вход через ULogin elseif(isset($_POST['token'])) { $s = file_get_contents('http://ulogin.ru/token.php?token='.$_POST['token'].'&host='.$_SERVER['HTTP_HOST']); $simpla = json_decode($s, true); if (isset($simpla['identity'])) { $name = $simpla['first_name'].' '.$simpla['last_name']; $email = $simpla['email']; $phone = $simpla['phone']; $city = $simpla['city']; $password = md5($simpla['identity'].'Noxter'); //проверяем есть ли в БД такой e-mail $this->db->query('SELECT count(*) as count, id FROM __users WHERE email=?', $email); $user_exists = $this->db->result(); if($user_id = $this->users->check_password($email, $password)) { $user = $this->users->get_user($email); if($user->enabled) { $_SESSION['user_id'] = $user_id; header('Location: '.$this->config->root_url); } else { $this->design->assign('error', 'user_disabled'); } } elseif($user_exists->count) { $_SESSION['user_id'] = $user_exists->id; header('Location: '.$this->config->root_url); } else { $user_id = $this->users->add_user( array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>1) ); $_SESSION['user_id'] = $user_id; header('Location: '.$this->config->root_url); } } } Вроде бы все.Проверяем отписываемся. Quote Link to post Share on other sites
iMessi89 Posted April 4, 2013 Report Share Posted April 4, 2013 а чем отличается от платной версии? Quote Link to post Share on other sites
Noxter Posted April 4, 2013 Author Report Share Posted April 4, 2013 Ну я демо платной версии не видел и не щупал, я не думаю что есть отличия в функционале. Quote Link to post Share on other sites
iMessi89 Posted April 4, 2013 Report Share Posted April 4, 2013 я имел ввиду от платного решения предложенного корсом чем отличается? Quote Link to post Share on other sites
Noxter Posted April 4, 2013 Author Report Share Posted April 4, 2013 >я имел ввиду от платного решения предложенного корсом чем отличается?>Ну я демо платной версии не видел и не щупал, я не думаю что есть отличия в функционале.Что из моей писанины Вы не поняли? Я Вам дал ответ на Ваш вопрос. Quote Link to post Share on other sites
Kosjak76 Posted April 4, 2013 Report Share Posted April 4, 2013 Ну не знаю, раньше все работало... Сейчас не знаю... Quote Link to post Share on other sites
Ruslan Kopyl Posted April 4, 2013 Report Share Posted April 4, 2013 А вместо того, чтоб такие бесполезные посты писать, не лучше ли затратить несколько минут и проверить, а потом уже высказываться по существу?Это самому себе написано?? ) Quote Link to post Share on other sites
Ruslan Kopyl Posted April 4, 2013 Report Share Posted April 4, 2013 кажется нужно так if (isset($simpla['identity']))хотя конечно название $simpla лучше не использовать, но раз уж начали Quote Link to post Share on other sites
Ruslan Kopyl Posted April 4, 2013 Report Share Posted April 4, 2013 и в js http://ваш-сайт.ru/user/login" Quote Link to post Share on other sites
Noxter Posted April 4, 2013 Author Report Share Posted April 4, 2013 (edited) Я прежде чем выкладывать поставил все на рабочий сайт и там все работает вполне нормально. Покажите скрин ошибки. Edited February 22, 2019 by Noxter Quote Link to post Share on other sites
Noxter Posted April 4, 2013 Author Report Share Posted April 4, 2013 кажется нужно такif (isset($simpla['identity']))Точно! Спасибо не заметил. Корс прав был вот из-за чего не работало. Quote Link to post Share on other sites
Noxter Posted April 4, 2013 Author Report Share Posted April 4, 2013 Если не шифровать пароль то любой сможет спокойно зайти под чужим пользователем. Ник Noxter служит солью в коде))) Quote Link to post Share on other sites
iMessi89 Posted April 4, 2013 Report Share Posted April 4, 2013 меня лично немного другой вопрос мучает - а вообще народ пользуется нет авторизацией и регистрацией на интернет-магазинах?? Насколько полезная вещь?? Есть ответ? Quote Link to post Share on other sites
Noxter Posted April 4, 2013 Author Report Share Posted April 4, 2013 Кто установил себе, отпишитесь как работает. Quote Link to post Share on other sites
iMessi89 Posted April 4, 2013 Report Share Posted April 4, 2013 у меня не работает Quote Link to post Share on other sites
Noxter Posted April 4, 2013 Author Report Share Posted April 4, 2013 iMessi89 сбросьте в ЛС фтп доступ я посмотрю. Quote Link to post Share on other sites
Rash Posted April 4, 2013 Report Share Posted April 4, 2013 =D> Спасибо Noxter, все работает! Единственное поле телефон не заполняется, хотя в БД есть поле "phone" и профиле пользователя тоже.. Quote Link to post Share on other sites
iMessi89 Posted April 4, 2013 Report Share Posted April 4, 2013 кароче в IE8 нифига ulogin не работает. На хабре уже об этом писали. А через loginza делал кто? Quote Link to post Share on other sites
Noxter Posted April 4, 2013 Author Report Share Posted April 4, 2013 Вечером еще раз все проверю. Да делал для действующего магазина и структура таблиц в БД изменилась. Quote Link to post Share on other sites
rapuk Posted April 29, 2013 Report Share Posted April 29, 2013 Вечером еще раз все проверю. Да делал для действующего магазина и структура таблиц в БД изменилась. Подскажите, пожалуйста, почему ваш вариант не желает работать? После авторизации через сервисы перебрасывает на страницу входа и ничего не происходит... Quote Link to post Share on other sites
alaster Posted June 6, 2013 Report Share Posted June 6, 2013 кароче в IE8 нифига ulogin не работает. На хабре уже об этом писали. А через loginza делал кто?Допиливал в свое время, приключений не возникало. Правда при авторизации сразу собирал данные о пользователях, наверно что бы потом их почтовым спамом завалить =D(на самом деле, что бы историю заказов можно было вести для тех кто openID пользуется). Работает к примеру тут: http://flowers68.ru/user/login Quote Link to post Share on other sites
iMessi89 Posted June 7, 2013 Report Share Posted June 7, 2013 Допиливал в свое время, приключений не возникало. Правда при авторизации сразу собирал данные о пользователях, наверно что бы потом их почтовым спамом завалить =D(на самом деле, что бы историю заказов можно было вести для тех кто openID пользуется). Работает к примеру тут: http://flowers68.ru/user/login у вас в ие вообще вся верстка сайта рушится. Quote Link to post Share on other sites
alaster Posted June 7, 2013 Report Share Posted June 7, 2013 Во-первых) верстка там не моя.Во-вторых, ишак он и в африке ишак.В-третьих, вы еще и старого ишака откопали) хорошо, что не Netscape Navigator какой-нибудь. Переживать из-за бедных жителей камбоджи едва ли стоит. Овчинка выделки не стоит. Quote Link to post Share on other sites
Yoshitoshi Posted June 10, 2013 Report Share Posted June 10, 2013 Кто установил себе, отпишитесь как работает. Все работает. Quote Link to post Share on other sites
Dr_Brown Posted June 12, 2013 Report Share Posted June 12, 2013 Все работает, спс. Чтобы прописывало ip входа юзверя: Этот кусок: $user_id = $this->users->add_user( array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>1) Заменить: $user_id = $this->users->add_user( array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>1, 'last_ip'=>$_SERVER['REMOTE_ADDR']) Пытался сделать так: 'enabled'=>$default_status лупит нотисы. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.