<?php
acms_header('Авторизация через соц.сети', 'guests');
$s = file_get_contents('http://ulogin.ru/token.php?token='.$_POST['token'].'&host='.HTTP_HOST);
$user = json_decode($s, true);
if (isset($_POST['token']) && isset($user['network']) && isset($user['identity'])) {
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `NETWORK` = ? AND `IDENTITY` = ? LIMIT 1", [$user['network'], $user['identity']]) == 0){
/*
------------------------
Если регистрация закрыта
------------------------
*/
if (config('REG_MODE') == 0){
error('Извините, регистрация закрыта');
redirect('/');
}
/*
-------------------------------
Запрет на повторную регистрацию
-------------------------------
*/
if (config('REG_ANTIDOUBLE') == 1 && cookie('DOUBLE') == 1 || config('REG_ANTIDOUBLE') == 2 && cookie('DOUBLE') == 1 || config('REG_ANTIDOUBLE') == 2 && db::get_column("SELECT COUNT(`ID`) FROM `USERS` WHERE `IP` = ? LIMIT 1", [IP]) > 0){
error('Извините, вы не можете зарегистрироваться, так как уже регистрировались');
redirect('/');
}
$login = 'id'.mt_rand(00000000, 99999999);
$pass = substr(base64_encode(mt_rand(000000, 999999)), 0, 12);
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `LOGIN` = ? LIMIT 1", [$login]) == 0){
$ID = db::get_add("INSERT INTO `USERS` (`NETWORK`, `IDENTITY`, `BROWSER`, `IP`, `DATE_CREATE`, `DATE_VISIT`, `LOGIN`, `PASSWORD`, `SEX`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", [$user['network'], $user['identity'], BROWSER, IP, TM, TM, $login, shif($pass), 1]);
$user = db::get_string("SELECT * FROM `USERS` WHERE `ID` = ? AND `LOGIN` = ? AND `PASSWORD` = ? LIMIT 1", [$ID, $login, shif($pass)]);
$hash = user_hash($user['ID']);
db::get_set("UPDATE `USERS` SET `HASH` = ? WHERE `ID` = ? LIMIT 1", [$hash, $user['ID']]);
setcookie('DOUBLE', 1, TM + 60 * 60 * 24 * 365, '/');
setcookie('USER_ID', user_shif($user['ID']), TM + 60 * 60 * 24 * 365, '/');
setcookie('PASSWORD', cencrypt($pass, $user['ID']), TM + 60 * 60 * 24 * 365, '/');
session('salt', base64_encode(user_shif($user['ID']).','.cencrypt($pass, $user['ID'])));
hooks::challenge('reg', 'reg');
hooks::run('reg');
$avatar_rand_param = array('#6E8CCE', '#53C8A9', '#8FA1A9', '#FC8FD8', '#AFBC81', '#B381BC', '#EB6156', '#FD8B2C', '#72C375', '#B970C5', '#31ACB8', '#5498CE', '#997445', '#4EA771', '#828D92', '#F55448');
$avatar_rand = array_rand($avatar_rand_param, 1);
$avatar = $avatar_rand_param[$avatar_rand];
db::get_add("INSERT INTO `NOTIFICATIONS_SETTINGS` (`USER_ID`) VALUES (?)", [$user['ID']]);
db::get_add("INSERT INTO `MAIL_SETTINGS` (`USER_ID`) VALUES (?)", [$user['ID']]);
db::get_add("INSERT INTO `USERS_SETTINGS` (`USER_ID`, `AVATAR_PHONE`) VALUES (?, ?)", [$user['ID'], $avatar]);
$message = lg('Здравствуйте!').'
'.lg('Это ваши данные для входа:').'
'.lg('Логин:').' - [b]'.$login.'[/b]
'.lg('Пароль:').' - [b]'.$pass.'[/b]
[url=/m/ulogin/login/]'.lg('Вы можете сменить свой логин 1 раз бесплатно').'[/url].
';
messages::get(config('SYSTEM'), $user['ID'], $message, 0);
}
}else{
/*
------------------------
Если авторизация закрыта
------------------------
*/
if (config('AUT_ACCESS') == 0){
error('Извините, авторизация закрыта');
redirect('/');
}
if (config('CTJ') == 1) {
error('На сайте ведутся тех.работы. Попробуйте авторизоваться позже');
redirect('/');
}
$user = db::get_string("SELECT `ID` FROM `USERS` WHERE `NETWORK` = ? AND `IDENTITY` = ? LIMIT 1", [$user['network'], $user['identity']]);
$hash = user_hash($user['ID']);
$pass = substr(base64_encode(mt_rand(000000, 999999)), 0, 12);
db::get_set("UPDATE `USERS` SET `PASSWORD` = ?, `IP` = ?, `BROWSER` = ?, `HASH` = ? WHERE `ID` = ? LIMIT 1", [shif($pass), IP, BROWSER, $hash, $user['ID']]);
if ($user['LOGIN_SET'] == 0) {
$MS = '[url=/m/ulogin/login/]'.lg('Вы все еще можете сменить свой логин 1 раз бесплатно').'[/url]';
}else{
$MS = null;
}
$message = lg('Выполнен автовход через социальные сети. Для безопасности ваш пароль сменен').'.
'.lg('Новый пароль:').' - [b]'.$pass.'[/b]
'.$MS.'.
';
messages::get(config('SYSTEM'), $user['ID'], $message, 0);
session('HASH', $hash);
setcookie('DOUBLE', 1, TM + 60 * 60 * 24 * 365, '/');
setcookie('USER_ID', user_shif($user['ID']), TM + 60 * 60 * 24 * 365, '/');
setcookie('PASSWORD', cencrypt($pass, $user['ID']), TM + 60 * 60 * 24 * 365, '/');
session('salt', base64_encode(user_shif($user['ID']).','.cencrypt($pass, $user['ID'])));
}
}
redirect('/account/cabinet/');