Размер файла: 5.02Kb
- <?php
- include '../engine/includes/start.php';
-
- $set['title'] = 'Восстановление пароля';
-
- include H.'engine/includes/head.php';
-
- if ($user_id)
- Core::stop('/?');
-
-
- /*
- FoXxs
- */
-
- if (isset($_GET['set_new']))
- {
- if ($sql->query("SELECT COUNT(*) FROM `user` WHERE `sess` = '".my_esc($_GET['set_new'], true)."'")->result() > 0)
- {
- if (isset($_POST['go2']))
- {
- if (empty($_POST['password_new']))
- {
- Core::msg_show('Введите новый пароль');
- }
- else
- {
- $user2 = $sql->query("SELECT `ank_mail`, `nick`, `id` FROM `user` WHERE `sess` = '".my_esc($_GET['set_new'], true)."'")->fetch();
- $password = md5($user2['id'] . $_POST['password_new']);
-
- $sql->query("UPDATE `user` SET `pass` = '$password' WHERE `id` = ".$user2['id']."");
-
- setcookie('user_id', $user2['id'], $time+60*60*24*365);
- setcookie('pass', $password, $time+60*60*24*365);
-
- $subject = 'Устанановлен новый пароль';
- $regmail = "Здравствуйте $user2[nick]<br />
- Вы сменили пароль через e-mail<br />
- Ваш новый пароль: <b>".$_POST['password_new']."</b><br />
- С уважением, администрация сайта <b>".$_SERVER['SERVER_NAME']."</b><br />";
- $adds = "From: \"password@$_SERVER[HTTP_HOST]\" <password@$_SERVER[HTTP_HOST]>\n";
- $adds .= "Content-Type: text/html; charset=utf-8\n";
- mail($user2['ank_mail'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);
-
- Core::msg_show('Пароль успешно сменен');
- echo '<a href="/pages/user.php">Моя анкета</a>';
- }
-
- }
- else
- {
- ?>
- <form method="post" action="?set_new=<?=htmlspecialchars($_GET['set_new'])?>&go2">
-
- Введите новый пароль:<br />
- <input type="password" name="password_new" /><br />
-
- <input type="submit" name="go2" value="Завершить"/>
- </form>
- <?
- }
- }
- else
- Core::msg_show('Ошибка восстановления пароля');
- }
- else
- {
- if (isset($_POST['go']))
- {
- if (empty($_POST['login']))
- {
- Core::msg_show('Введите логин');
- $error_pass = true;
- }
-
- if (empty($_POST['email']))
- {
- Core::msg_show('Введите E-mail');
- $error_pass = true;
- }
-
- if (!isset($error_pass))
- {
- if ($sql->query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['login'],'true')."'")->result() > '0')
- {
- $user2 = $sql->query("SELECT `id`,`nick`,`ank_mail` FROM `user` WHERE `nick` = '".my_esc($_POST['login'],'true')."'")->fetch();
-
- if (empty($user2['ank_mail']))
- Core::msg_show('Восстановление пароля не возможно<br />На данном логине нет E-mail');
- elseif ($_POST['email'] !== $user2['ank_mail'])
- Core::msg_show('E-mail введен не верно');
- else
- {
- $new_sess = substr(md5(md5(md5(mt_rand()))), 0, 20);
- $subject = 'Восстановление пароля';
- $regmail = "Здравствуйте $user2[nick]<br />
- Вы активировали восстановление пароля<br />
- Для установки нового пароля перейдите по ссылке:<br />
- <a href=\"http://$_SERVER[HTTP_HOST]/pages/pass.php?id=$user2[id]&set_new=$new_sess\">http://$_SERVER[HTTP_HOST]/pages/pass.php?id=$user2[id]&set_new=$new_sess</a><br />
- Данная ссылка действительна до первой авторизации под своим логином ($user2[nick])<br />
- С уважением, администрация сайта <b>".$_SERVER['SERVER_NAME']."</b><br />";
- $adds = "From: \"password@$_SERVER[HTTP_HOST]\" <password@$_SERVER[HTTP_HOST]>\n";
- $adds .= "Content-Type: text/html; charset=utf-8\n";
- mail($user2['ank_mail'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);
-
- $sql->query("UPDATE `user` SET `sess` = '$new_sess' WHERE `id` = '".$user2['id']."' LIMIT 1");
-
- Core::msg_show('Письмо с ссылкой для активации пароля отправлена на Ваш E-mail '.$user2['ank_mail'].'');
- }
-
- }
- else
- Core::msg_show('Пользователь с таким логином не найден');
- }
- }
- ?>
- <form action="" method="POST">
- Логин:<br />
- <input type="text" name="login" /><br />
-
- E-mail:<br />
- <input type="text" name="email" /><br />
- <input type="submit" name="go" value="Отправить" />
- </form>
- На ваш E-mail придет ссылка для установки нового пароля.<br />
- Если у вас в анкете отсутствует запись о вашем e-mail, восстановление пароля невозможно.<br />
- <?
- }
- include H.'engine/includes/foot.php';