Файл: pages/registration/index.php
Строк: 187
<?php
include '../../system/mysql.php';
include '../../system/sys_func.php';
switch ($_GET['menu']) {
case 'pass':
if (isset($user)) header('Location: /pages/personal/');
$title = 'Восстановление пароля';
include '../../system/head.php';
echo '<div class="title">Восстановление пароля</div>';
if (isset($_POST['ok']))
{
$login = filter($_POST['login']);
if(empty($login))
{
echo '<div class="err"><b>Вы не ввели логин!</b></div>';
include '../../system/foot.php';
exit();
}
if(strlen($login) > 15 or strlen($login) < 3)
{
echo '<div class="err"><b>Введите логин от 3 до 15 символов!</b></div>';
include '../../system/foot.php';
exit();
}
if (!preg_match('|^[a-z0-9-]+$|i', $login))
{
echo '<div class="err"><b>Кириллица запрещена в логине!</b></div>';
include '../../system/foot.php';
exit();
}
$email = filter($_POST['email']);
if(empty($email))
{
echo '<div class="err"><b>Вы не ввели свой e-mail!</b></div>';
include '../../system/foot.php';
exit();
}
if (!preg_match('/[0-9a-z_-]+@[0-9a-z_-^.]+.[a-z]{2,6}/i', $email)) {
echo '<div class="err"><b>Формат e-mail введён не верно!</b></div>';
include '../../system/foot.php';
exit();
}
$BD_email = mysql_fetch_array(mysql_query("SELECT `login`,`email` FROM `users` WHERE `login` = '".$login."' AND `email` = '".$email."' LIMIT 1"));
if(!empty($login) && !empty($email)) if($BD_email == 0){
echo '<div class="err"><b>Введенные данные не верны!</b></div>';
include '../../system/foot.php';
exit();
}
$pass_new = rand(1000000000,5000000000);
mysql_query("UPDATE `users` SET `pass` = '".in_md5($pass_new)."' WHERE `login` = '".$login."'");
echo '<div class="err"><b>На Ваш e-mail '.$email.' Мы отправили письмо с вашими регистрациоными данными!</b></div>';
/* Отправка сообщения */
$titles = 'От '.$_SERVER['HTTP_HOST'];
$body .= "Content-Type: text/plain; charset="utf-8"$EOL";
$msg = 'Здравствуйте '.$login.'!
Вами (или нет) была произведена операция по восстановлению пароля на сайте '.$_SERVER['HTTP_HOST'].'
Ваши данные для входа в аккаунт:
=========================
Логин: '.$login.'
Пароль: '.$pass_new.'
=========================
Пароль згенирировался автоматически,просим Вас после авторизации сменить его!';
mail($email, 'Восстановление пароля на '. $_SERVER['HTTP_HOST'], $msg, $body);
include '../../system/foot.php';
//session_destroy();
exit();
}else{
echo '<div class="podmenu">
<form action="" method="POST">
Ваш логин:<br /><input type="text" name="login" maxlength="15" /><br />
Ваш e-mail:<br /><input type="text" name="email" maxlength="45" /><br />
<input type="submit" name="ok" value="Восстановить" />
</form></div>';
}
include '../../system/foot.php';
break;
case 'email':
if (!isset($user)) {
header('Location: /pages/err.php?err=404');
exit;
}
$title = 'Активация аккаунта';
include '../../system/head.php';
echo '<div class="title">Активация аккаунта</div>';
if ($user['activation'] != 0) {
echo '<div class="err">Ваш E-mail уже подтверждён!</div>';
echo '<a class="link" href="/"><img src="/design/imgs/arr_b.png" align="center"> На главную</a>';
include '../../system/foot.php';
exit;
}
if (!isset($_GET['log']) || !isset($_GET['sum']) || isset($_GET['log']) && isset($_GET['sum']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `login` = '". filter($_GET['log']) ."' AND `md5_activation` = '". filter($_GET['sum']) ."'"), 0) == 0) {
echo '<div class="err">Неправильная ссылка</div>';
include '../../system/foot.php';
exit;
} else {
mysql_query("UPDATE `users` SET `activation` = '1' WHERE `login` = '". filter($_GET['log']) ."' LIMIT 1");
echo '<div class="info">E-mail успешно подтверждён</div>';
echo '<a class="link" href="/"><img src="/design/imgs/arr_b.png" align="center"> На главную</a>';
include '../../system/foot.php';
exit;
}
break;
case 'login':
if (isset($user)) header('Location: /pages/personal/');
$error = false;
$errort = '';
if (isset($_POST['submit'])) {
$login = filter($_POST['login']);
$password = mysql_query("SELECT `pass` FROM `users` WHERE `login` = '". $login ."' LIMIT 1");
if (mysql_num_rows($password) == 1) {
$pass = filter($_POST['pass']);
$user = mysql_query("SELECT `id` FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1");
if (mysql_num_rows($user) == 1) {
header('Location: /?login='. $login .'&pass='. $pass);
exit;
} else {
$error = true;
$errort .= '<div class="err">Неправильный логин или пароль.</div>';
}
} else {
$error = true;
$errort .= '<div class="err">Неправильный логин или пароль.</div>';
}
}
$title = 'Вход';
include '../../system/head.php';
echo '<div class="title">Вход</div>
'. $errort .'
<form method="post">
Логин: <br><input type="text" name="login" '. (isset($_POST['login']) ? 'value="'. htmlspecialchars($_POST['login']) .'"' : null) .' />
<br>Пароль: <br>
<input type="password" name="pass" />
<br><input type="submit" name="submit" value="Войти" />
</form>
<a class="link" href="/pages/registration/"><img src="/design/imgs/register.png" valign="middle"> Ещё нет аккаунта? Регистрация!</a>
<a class="link" href="/pages/registration/?menu=pass"><img src="/design/imgs/register.png" valign="middle"> Восстановить пароль</a>';
include '../../system/foot.php';
break;
default:
if (isset($user)) header('Location: /pages/personal/');
$error = false;
$errort = '';
if (isset($_POST['registration'])) {
if (strlen($_POST['login']) < 4) {
$error = true;
$errort .= '<div class="err">Длина логина должна быть не менее 4-х символов.</div>';
} elseif (strlen($_POST['login']) > 15) {
$error = true;
$errort .= '<div class="err">Длина логина должна быть не более 15-и символов.</div>';
} elseif(!preg_match("#^([A-z0-9_])+$#ui", filter($_POST['login']))) {
$error = true;
$errort .= '<div class="err">В нике присутствуют запрещенные символы.</div>';
}
if (strlen($_POST['pass']) < 4) {
$error = true;
$errort .= '<div class="err">Длина пароля должна быть не менее 4-х символов.</div>';
} elseif (strlen($_POST['pass']) > 15) {
$error = true;
$errort .= '<div class="err">Длина пароля должна быть не более 15-и символов.</div>';
} elseif(!preg_match("#^([A-z0-9])+$#ui", filter($_POST['pass']))) {
$error = true;
$errort .= '<div class="err">В пароле присутствуют запрещенные символы.</div>';
}
if ($_POST['pass'] != $_POST['pass2']) {
$error = true;
$errort .= '<div class="err">Пароли не совпадают.</div>';
}
if (empty($_POST['email'])) {
$error = true;
$errort .= '<div class="err">Введите E-mail!</div>';
} elseif (isset($_POST['email']) && !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$error = true;
$errort .= '<div class="err">Неправильный E-mail!</div>';
} elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `email` = '". filter($_POST['email']) ."'"), 0) != 0) {
$error = true;
$errort .= '<div class="err">Такой E-mail уже зарегистрирован!</div>';
}
if (empty($_POST['chislo']) || mb_strlen($_POST['chislo']) < 1) {
$error = true;
$errort .= '<div class="err">Не введён проверочный код!</div>';
} elseif ($_SESSION['captcha'] != $_POST['chislo']) {
$error = true;
$errort .= '<div class="err">Проверочный код неправильный!</div>';
}
unset($_SESSION['captcha']);
$sql = mysql_query("SELECT `id` FROM `users` WHERE `login` = '". filter($_POST['login']) ."' LIMIT 1");
if (mysql_num_rows($sql) == 1) {
$error = true;
$errort .= '<div class="err">Пользователь с таким логином уже существует.</div>';
}
if (!$error) {
$title = 'Регистрация';
include '../../system/head.php';
$login = filter($_POST['login']);
$pass = filter($_POST['pass']);
$pass2 = filter($_POST['pass2']);
$email = filter($_POST['email']);
$md5 = md5(time().$login.$email.rand(0, 10));
$reg = 'Вы успешно зарегистрировались на сайте http://'. $_SERVER['HTTP_HOST'] .'. <br>Ваш логин: '. $login .'<br>Ваш пароль: '. $pass .'<br>Спасибо за регистрацию! Не забудьте подвердить ваш e-mail.';
$msg = 'Для активации аккаунта перейдите по ссылке: http://'. $_SERVER['HTTP_HOST'] .'/pages/registration/?menu=email&log='. $login .'&sum='. $md5;
mail($email, 'Регистрация на '. $_SERVER['HTTP_HOST'], $reg);
mail($email, 'Активация e-mail'а на '. $_SERVER['HTTP_HOST'], $msg);
mysql_query("INSERT INTO `users` SET `login` = '". $login ."', `pass` = '". in_md5($pass) ."', `pol` = '". intval($_POST['pol']) ."', `time_reg` = '". time() ."', `time_last` = '". (time()-600) ."', `email` = '". $email ."', `md5_activation` = '". $md5 ."'");
echo '<div class="info">Аккаунт успешно зарегистрирован!</div>
<a class="link" href="/?login='. $login .'&pass='. $pass .'"><img src="/design/imgs/login.png" valign="middle"> Войти</a>';
include '../../system/foot.php';
exit;
}
}
$title = 'Регистрация';
include '../../system/head.php';
echo '<div class="title">Регистрация</div>
'. $errort;
$_SESSION['captcha'] = mt_rand(1000, 9999);
echo '<form method="post">
Логин:<br><input type="text" name="login" '. (isset($_POST['login']) ? 'value="'. htmlspecialchars($_POST['login']) .'"' : null) .' />
<br>Пароль:<br><input type="text" name="pass" '. (isset($_POST['pass']) ? 'value="'. htmlspecialchars($_POST['pass']) .'"' : null) .' />
<br>Повторите пароль:<br><input type="text" name="pass2" '. (isset($_POST['pass2']) ? 'value="'. htmlspecialchars($_POST['pass2']) .'"' : null) .' />
<br>Ваш пол:<br><select name="pol">
<option value="1">Мужской</option><option value="0">Женский</option></select>
<br>E-mail:<br><input type="text" name="email" '. (isset($_POST['email']) ? 'value="'. htmlspecialchars($_POST['email']) .'"' : null) .' />
<hr><img src="/captcha.php?'. rand(0, 9999) .'" alt="Капча" />
<br>Код с картинки:<br><input name="chislo" size="4" maxlength="4" type="text" />
<br><input class="blue_l_left" type="submit" name="registration" value="Зарегистрироваться" />
</form>
<a class="link" href="/pages/registration/?menu=login"><img src="/design/imgs/login.png" valign="middle"> Уже есть аккаунт? Вход!</a>';
include '../../system/foot.php';
break;
}
?>