Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

В виду того что автор темы забил на свое решение и не хочет его привести в рабочий вид, я решил написать небольшой туториал по авторизации в интернет-магазине через соц. сети.
Также есть платное решение кому нужно.

Что это дает?
- Автоматический вход клиента без регистрации в интернет-магазин
- Автоматическая регистрация покупателя который зашел через соц. сеть
- Сбор потенциальных покупателей на лету

И так приступим.
В шаблон 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);
}
}
}

 
Вроде бы все.
Проверяем отписываемся.

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 124
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Популярные посты

>я имел ввиду от платного решения предложенного корсом чем отличается? >Ну я демо платной версии не видел и не щупал, я не думаю что есть отличия в функционале. Что из моей писанины Вы не поняли

header('Location: '.$this->config->root_url);

Изображения в теме

>я имел ввиду от платного решения предложенного корсом чем отличается?
>Ну я демо платной версии не видел и не щупал, я не думаю что есть отличия в функционале.
Что из моей писанины Вы не поняли? Я Вам дал ответ на Ваш вопрос.

Ссылка на сообщение
Поделиться на другие сайты
А вместо того, чтоб такие бесполезные посты писать, не лучше ли затратить несколько минут и проверить, а потом уже высказываться по существу?

Это самому себе написано?? :))
Ссылка на сообщение
Поделиться на другие сайты

кажется нужно так

if (isset($simpla['identity']))

хотя конечно название $simpla лучше не использовать, но раз уж начали
Ссылка на сообщение
Поделиться на другие сайты

Я прежде чем выкладывать поставил все на рабочий сайт и там все работает вполне нормально.

Покажите скрин ошибки.

Изменено пользователем Noxter
Ссылка на сообщение
Поделиться на другие сайты
кажется нужно так
if (isset($simpla['identity']))

Точно! Спасибо не заметил. Корс прав был вот из-за чего не работало.
Ссылка на сообщение
Поделиться на другие сайты

Если не шифровать пароль то любой сможет спокойно зайти под чужим пользователем. Ник Noxter служит солью в коде)))

Ссылка на сообщение
Поделиться на другие сайты

меня лично немного другой вопрос мучает - а вообще народ пользуется нет авторизацией и регистрацией на интернет-магазинах?? Насколько полезная вещь?? Есть ответ?

Ссылка на сообщение
Поделиться на другие сайты

=D> Спасибо Noxter, все работает! Единственное поле телефон не заполняется, хотя в БД есть поле "phone" и профиле пользователя тоже..

Ссылка на сообщение
Поделиться на другие сайты

Вечером еще раз все проверю. Да делал для действующего магазина и структура таблиц в БД изменилась.

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

Вечером еще раз все проверю. Да делал для действующего магазина и структура таблиц в БД изменилась.

 

Подскажите, пожалуйста, почему ваш вариант не желает работать? После авторизации через сервисы перебрасывает на страницу входа и ничего не происходит...

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

кароче в IE8 нифига ulogin не работает. На хабре уже об этом писали. А через loginza делал кто?

Допиливал в свое время, приключений не возникало.

 

Правда при авторизации сразу собирал данные о пользователях, наверно что бы потом их почтовым спамом завалить =D

(на самом деле, что бы историю заказов можно было вести для тех кто openID пользуется).

 

Работает к примеру тут: http://flowers68.ru/user/login

Ссылка на сообщение
Поделиться на другие сайты

Допиливал в свое время, приключений не возникало.

 

Правда при авторизации сразу собирал данные о пользователях, наверно что бы потом их почтовым спамом завалить =D

(на самом деле, что бы историю заказов можно было вести для тех кто openID пользуется).

 

Работает к примеру тут: http://flowers68.ru/user/login

 

у вас в ие вообще вся верстка сайта рушится.

post-3358-0-89879100-1370604232_thumb.jpg

Ссылка на сообщение
Поделиться на другие сайты

Во-первых) верстка там не моя.

Во-вторых, ишак он и в африке ишак.

В-третьих, вы еще и старого ишака откопали) хорошо, что не Netscape Navigator какой-нибудь.

 

Переживать из-за бедных жителей камбоджи едва ли стоит. Овчинка выделки не стоит.

 

 

Ссылка на сообщение
Поделиться на другие сайты

Все работает, спс.

 

Чтобы прописывало 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

 

лупит нотисы.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...