Файл: registration.php
Строк: 164
<?
include_once 'sys/inc/start.php';
include_once 'sys/inc/compress.php';
include_once 'sys/inc/sess.php';
include_once 'sys/inc/home.php';
include_once 'sys/inc/settings.php';
include_once 'sys/inc/db_connect.php';
include_once 'sys/inc/ipua.php';
include_once 'sys/inc/fnc.php';
include_once 'sys/inc/shif.php';
$show_all = true; // показ для всех
if (!isset($_SESSION['phone']))$_SESSION['phone'] = null;
include_once 'sys/inc/user.php';
only_unreg();
// Класс обработчика
include_once H.'sys/inc/smsc_api.php';
// Уведомление
if ($set['smsc_no_balans'] >= abs(intval(get_balance())) && $set['smsc_no_balans_time'] < time() - 60*60*24)
{
// отправка сообщения
$msgg = "Здравствуйте, на вашем аккаунте [b]Smsc.Ru[/b] денежных средств осталось: [b]" . abs(get_balance()) . "[/b] единиц.";
mysql_query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) values('0', '1', '".my_esc($msgg)."', '$time')");
$temp_set = $set;
$temp_set['smsc_no_balans_time'] = time();
@save_settings($temp_set);
}
// Отправка пароля
if (isset($_POST["sendsms"]))
{
// Номер телефона
$phone = abs($_POST["phone"]);
$_SESSION['phone'] = $phone;
if (!preg_match('/^((+?7|8)(?!95[4-79]|99[^2457]|907|94[^0]|336)([348]d|9[0-689]|7[07])d{8}|+?(99[^456]d{7,11}|994d{9}|9955d{8}|996[57]d{8}|380[34569]d{8}|375[234]d{8}|372d{7,8}|37[0-4]d{8}))$/', $phone) || !is_numeric($phone))
$err = 'Неверный формат номера';
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user_reg` WHERE `phone` = '".$phone."'"),0) == 0)
{
// Генерация пароля
if ($set['smsc_gen_pass'] == 1)
$pass = mt_rand(111111, 999999);
elseif ($set['smsc_gen_pass'] == 0)
$pass = passgen(6, 2);
else $err = 'Ошибка при генерации пароля';
$pass_link = shif($pass . $phone);
}
else
{
$user_tmp = mysql_fetch_assoc(mysql_query("SELECT * FROM `user_reg` WHERE `phone` = '".abs($_POST['phone'])."' LIMIT 1"));
$pass = $user_tmp['pass'];
$pass_link = $user_tmp['pass'];
}
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `phone` = '".$phone."'"),0) != 0)
$err[] = 'Пользователь с этим номером уже зарегистрирован';
if (isset($_SESSION['flood']) && $_SESSION['flood'] > time() - 300)
$err[] = 'Cлишком частые попытки';
// Отправляем сообщение
if (!$err)$r = send_sms($phone, "Bxod: http://" . $_SERVER['HTTP_HOST'] . "/pm/" . $pass_link . "nParol: $pass");
if ($r[1] > 0)
{
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user_reg` WHERE `phone` = '".$phone."'"),0) == 0)
mysql_query("INSERT INTO `user_reg` (`time`, `id_user`, `phone`, `pass`, `show_pass`, `aut`) VALUES ('$time', '0', '$phone', '".shif($pass)."', '".$pass."', '$pass_link')");
// Записываем в логи
$log = ' Регистрация на сайте ';
mysql_query("INSERT INTO `user_reg_log` (`time`, `id_user`, `phone`, `msg`, `ip`, `ip_cl`, `ip_xff`, `ua`)
VALUES ('$time', '0', '$phone', '$log', '".ip2long($ip2['add'])."', '".ip2long($ip2['cl'])."', '".ip2long($ip2['xff'])."', '".my_esc($ua)."')");
$_SESSION['flood'] = time();
setcookie('phone', $phone, time()+60*60*24*365);
$_SESSION['message'] = 'Пароль успешно отправлен';
header('Location: ?enter');
exit;
}
}
// Регистрируем
if (isset($_GET['enter']))
{
// Чистим куки
if ($_GET['enter'] == 1)
$_COOKIE['phone'] = null;
if (isset($_GET['reg']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `user_reg` WHERE `show_pass` = '".my_esc($_GET['reg'])."' AND `pass` = '".my_esc($_GET['pass'])."'"),0) == 1)
{
$_POST['password'] = $_GET['reg'];
}
if (isset($_POST['password']))
{
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user_reg` WHERE `pass` = '".shif(my_esc($_POST['password']))."' AND `id_user` = '0'"),0) == 1)
{
$user_tmp = mysql_fetch_assoc(mysql_query("SELECT * FROM `user_reg` WHERE `pass` = '".shif(my_esc($_POST['password']))."' LIMIT 1"));
mysql_query("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `set_nick`, `phone`) values('$time', '".shif($_POST['password'])."', '$time', '$time', '1', '$user_tmp[phone]')");
// Определяем нового юзера
$user = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `phone` = '$user_tmp[phone]' AND `pass` = '".shif($_POST['password'])."' LIMIT 1"));
$nick = 'id' . $user['id'];
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user_reg` WHERE `nick` = '".$nick."'"),0) == 1)
$nick = $nick . '_' . $time;
mysql_query("UPDATE `user` SET `nick` = '$nick' WHERE `id` = '$user[id]' LIMIT 1");
$pass = esc($_POST['password']);
// Запись для автовхода
mysql_query("UPDATE `user_reg` SET `id_user` = '$user[id]' WHERE `phone` = '".$user_tmp['phone']."' LIMIT 1");
// отправка сообщения
$msgg = "Уважаемый $nick, поздравляем с успешной регистрацией на сайте! .дружба. n Ваши регистрационные данные: n логин: $nick пароль: $pass . nИзменить свой ник вы можете [url=/user/info/edit.php?set=nick]ТУТ[/url]";
mysql_query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) values('0', '$user[id]', '".my_esc($msgg)."', '$time')");
$_SESSION['id_user'] = $user['id'];
setcookie('id_user', $user['id'], time() + 60*60*24*365);
setcookie('pass', cookie_encrypt($pass,$user['id']), time()+60*60*24*365);
setcookie('phone', null, time());
$_SESSION['message'] = 'Регистрация прошла успешно';
header('Location: /umenu.php');
exit;
}
else $err[] = 'Неверный пароль';
}
}
$set['title'] = 'Регистрация на сайте';
include_once 'sys/inc/thead.php';
err();
title();
aut();
?>
<div class="foot">
<img src="/style/icons/str.gif" alt="*" /> Регистрация
</div>
<div class="nav2">
<?
if (isset($_GET['info']))
{
?>
Номер вашего мобильного вводите в международном формате, он должен начинаться с кода вашей страны.
Обратите внимание, именно с кода страны, а не с кода вашего города.
Номер можно вводить как со знаком плюс, так и без него.<br/><br/>
Примеры правильного ввода номеров в международном формате для популярных стран:<br/><br/>
Россия - <b class="service_item">79001001010</b> или <b class="service_item">+79001001010</b>, где <b class="service_item">7</b> - это код страны<br/>
Украина - <b class="service_item">380600000000</b>, где <b class="service_item">38</b> - это код страны<br/>
Беларусь - <b class="service_item">375000000000</b>, где <b class="service_item">375</b> - это код страны<br/><br/>
Вводить можно только федеральные мобильные номера, городские номера не поддерживаются.<br/>
Если у вас не получается ввести номер, то обратитесь к вашему оператору и спросите у него "Как правильно записать мой федеральный мобильный номер в международном формате?".<br/><br/>
<img src="/style/icons/str2.gif" alt="*" /> <a href="?">Назад</a>
<?
}
else
{
if (!isset($_COOKIE['phone']))
{
?>
Для быстрой регистрации введите свой номер телефона
<?
if ($set['smsc_reg'] == 1)
{
?>
или <a style="color: blue;" href="/reg.php">нажмите здесь</a> для регистрации без номера.
<?
}
?>
<br /><br />Ваш номер:<br />
<form action="?" method="POST">
<input type="text" name="phone" size="12" value="<?=$_SESSION['phone']?>"><br />
<span style="color:gray">(Например, 79110123456)</span><br /><br />
Пароль будет отправлен на ваш номер. Никто не увидит ваш номер на сайте.<br/><br/>
Регистрируясь на сайте, вы соглашаетесь с <a href="/rules.php">правилами сайта</a>.<br/>
<input type="submit" value="Продолжить" name="sendsms"/>
</form>
<br />
<a style="color:blue;" href="?info">Как правильно вводить номер?</a><br/>
<a style="color:blue;" href="/secure.php">Восстановление пароля</a><br/>
<?
}
else
{
?>
<form method="post" action="?enter">
На ваш номер <span style="color:green"><b><?=abs($_COOKIE['phone'])?></b></span> отправлен пароль и ссылка для входа.<br/><br/>
Введите пароль здесь:<br/>
<input name="password" size="12" maxlength="6" type="text" value=""><br/>
<input type="hidden" name="phone" value="<?=abs($_COOKIE['phone'])?>"/>
<input type="submit" value="Войти" />
</form>
<div class="mess">
Если СМС не пришло в течение 10 минут, попробуйте <a href="?enter=1"><b>повторить отправку</b></a>.
</div>
<?
}
}
?>
</div>
<div class="foot">
<img src="/style/icons/str.gif" alt="*" /> Регистрация
</div>
<?
include_once 'sys/inc/tfoot.php';
?>