Файл: pages/registration.php
Строк: 94
<?php
include '../engine/includes/start.php';
$set['title'] = 'Регистрация';
include H.'engine/includes/head.php';
if ($user_id)
Core::stop('/pages/user.php');
if (isset($_GET['id'], $_GET['activation']))
{
if ($sql->query("SELECT COUNT(*) FROM `user` WHERE `id` = '".my_esc($_GET['id'] ,'true')."' AND `activation` = '".my_esc($_GET['activation'],'true')."'")->result() !== '0')
{
$sql->query("UPDATE `user` SET `activation` = 'null' WHERE `id` = '$id'");
$user['password'] = $sql->query("SELECT `password` FROM `user` WHERE `id` = '$id'")->result();
Core::msg_show('Ваш аккаунт успешно активирован');
setcookie('user_id', $id, $time+60*60*24*365, '/');
setcookie('pass', $user['password'], $time+60*60*24*365, '/');
echo '<a href="/pages/user.php">Перейти в свой кабинет</a>';
include H.'engine/includes/foot.php';
}
else
Core::msg_show('Ошибка активации аккаунта');
}
if (isset($_POST['auth']))
{
$log_len = mb_strlen($_POST['login']);
if (empty($_POST['login']))
$error[] = 'Введите логин';
if (!isset($_POST['sex']))
$error[] = 'Выберите пол';
if (empty($_POST['password']))
$error[] = 'Введите пароль';
if (empty($_POST['password2']))
$error[] = 'Введите повтор пароля';
if (!empty($_POST['login']) && $log_len < 3 || $log_len > 16)
$error[] = 'Логин должен быть не меньше 3х и не больше 16 символов';
if (!empty($_POST['password']) && mb_strlen($_POST['password']) < 6)
$error[] = 'Пароль должен быть не меньше 6';
if ($_POST['password'] !== $_POST['password2'])
$error[] = 'Пароль не соответствует повтору пароля';
if (empty($_SESSION['captcha']) || trim(strtolower($_POST['captcha'])) != $_SESSION['captcha'])
{
$error[] = 'Неверный проверочный код';
}
if (isset($set['reg_select']) && $set['reg_select'] == 'open_mail')
{
if (empty($_POST['email']))
$error[] = 'Введите E-mail';
if (!empty($_POST['email']) && !preg_match('#^[A-z0-9-._]+@[A-z0-9]{2,}.[A-z]{2,4}$#ui',$_POST['email']))
$error[] = 'Не верный формат E-mail';
}
if (!isset($error))
{
if ($sql->query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['login'], 'true')."'")->result() == 0)
{
$status = $sql->query('SHOW TABLE STATUS LIKE "user"')->fetch();
$password = md5($status['Auto_increment'] . $_POST['password']);
$login = my_esc($_POST['login'], 'true');
$sex = intval($_POST['sex']);
if (!empty($set['activation_acc']))
{
$key = md5(mt_rand());
$email = my_esc($_POST['email'], 'true');
$sql->query("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `activation`, `pol`, `ank_mail`) VALUES ('$login', '$password', '$time', '$time', '$key', '$sex', '$email')");
$user['id'] = $sql->query("SELECT * FROM `user` WHERE `nick` = '".my_esc($_POST['login'])."' LIMIT 1")->result();
$user = Core::get_user($user['id'], true);
$subject = "Активация аккаунта";
$regmail = "Здравствуйте $login<br />
Для активации Вашего аккаунта перейдите по ссылке:<br />
<a href='http://$_SERVER[HTTP_HOST]/pages/registration.php?id=$user[id]&activation=$key'>http://$_SERVER[HTTP_HOST]/pages/reg.php?id=$user[id]&activation=$key</a><br />
Если аккаунт не будет активирован в течении 24 часов, он будет удален<br />
С уважением, администрация сайта<br />";
$adds = "From: "password@$_SERVER[HTTP_HOST]" <password@$_SERVER[HTTP_HOST]>n";
$adds .= "Content-Type: text/html; charset=utf-8n";
mail($_POST['email'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);
Core::msg_show('Вам необходимо активировать Ваш аккаунт по ссылке, высланной на E-mail');
include H.'engine/includes/foot.php';
}
else
{
$sql->query("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `ip`, `ua`)
VALUES ('$login', '$password', '$time', '$time', '$sex', '".ip2long($_SERVER['REMOTE_ADDR'])."', '".my_esc($_SERVER['HTTP_USER_AGENT'], true)."')");
$user = $sql->query("SELECT * FROM `user` WHERE `nick` = '".my_esc($_POST['login'])."' LIMIT 1")->result();
$user = Core::get_user($user, true);
setcookie('user_id', $user['id'], $time+60*60*24*365, '/');
setcookie('pass', $password, $time+60*60*24*365, '/');
$res = mysqli_query($sql->db, 'select `file` from `module_services` where `use_in` ="reg"');
while($file = $sql->result($res))
{
include_once H . $file;
}
?>
Вы успешно зарегистрировались<br />
<a href="/pages/user.php"><div class="link">Перейти в свой кабинет</div></a>
<?
include H.'engine/includes/foot.php';
}
}
else
Core::msg_show('Пользователь с логином '.Core::form('login').' уже зарегистрирован');
}
else
Core::msg_show($error);
}
?>
<form action="" method="POST">
Логин [A-z А-я 0-9]<br />
<input type="text" name="login" value="<?=Core::form('login')?>" /><br />
<?
if (!empty($set['activation_acc']))
{
?>
E-mail:<br />
<input type="text" name="email" value="<?=Core::form('email')?>"/><br />
<?
}
?>
Пол:<br />
<select name="sex">
<option value="1">Мужской</option>
<option value="0">Женский</option>
</select><br />
Пароль:<br />
<input type="password" name="password" value="<?=Core::form('password')?>"/><br />
Повтор пароля:<br />
<input type="password" name="password2" value="<?=Core::form('password2')?>"/><br />
<img src = "/pages/captcha.php"/><br />
Проверочный код:<br />
<input type = "text" name = "captcha"/><br />
<input type="submit" name="auth" value="Зарегистрироваться" />
</form>
<?
include H.'engine/includes/foot.php';