<?php
#-----------------------------------------------------#
# ********* ROTORCMS ********* #
# Made by : VANTUZ #
# E-mail : [email protected] #
# Site : http://pizdec.ru #
# WAP-Site : http://visavi.net #
# ICQ : 36-44-66 #
# Вы не имеете право вносить изменения в код скрипта #
# для его дальнейшего распространения #
#-----------------------------------------------------#
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/' . $config['themes'] . '/index.php');
if (isset($_GET['act'])) {
$act = check($_GET['act']);
} else {
$act = 'index';
}
show_title('site.png', 'Восстановление пароля');
$config['newtitle'] = 'Восстановление пароля';
if (!is_user()) {
switch ($act):
# ###########################################################################################
# # Главная страница ##
# ###########################################################################################
case 'index':
if (isset($_COOKIE['cookname'])) {
$cookname = check($_COOKIE['cookname']);
} else {
$cookname = "";
}
echo 'Введите свой логин<br />';
echo 'Инструкция по восстановлению будет выслана на электронный адрес указанный в профиле<br />';
echo 'Восстанавливать пароль можно не чаще чем раз в 12 часов<br /><br />';
echo '<div class="form">';
echo '<form method="post" action="lostpassword.php?act=remind&' . SID . '">';
echo 'Логин:<br />';
echo '<input name="uz" type="text" maxlength="20" value="' . $cookname . '" /><br />';
echo '<input value="Продолжить" type="submit" /></form></div><br />';
echo 'Если у вас установлен секретный вопрос, вам будет предложено на него ответить<br /><br />';
break;
# ###########################################################################################
# # Главная страница ##
# ###########################################################################################
case 'remind':
if (isset($_POST['uz'])) {
$uz = check(strval($_POST['uz']));
} else {
$uz = check(strval($_GET['uz']));
}
if (!empty($uz)) {
$user = DB :: $dbh -> queryFetch("SELECT * FROM `users` WHERE `users_login`=? LIMIT 1;", array($uz));
if (!empty($user)) {
if (!empty($user['users_email'])) {
echo '<b><big>Восстановление на e-mail:</big></b><br />';
echo '<div class="form">';
echo '<form method="post" action="lostpassword.php?act=send&' . SID . '">';
echo 'Введите e-mail:<br />';
echo '<input name="email" type="text" maxlength="50" /><br />';
echo 'Проверочный код:<br /> ';
echo '<input name="provkod" size="6" maxlength="6" /> ';
if ($config['protectimg'] == 1) {
echo '<img src="../gallery/protect.php?' . SID . '" alt="" /><br />';
} else {
echo '<b>' . $_SESSION['protect'] . '</b><br />';
}
echo '<input name="uz" type="hidden" value="' . $uz . '" />';
echo '<br /><input value="Восстановить" type="submit" /></form></div><br />';
}
// --------------------------------------------------------------//
if (!empty($user['users_secquest'])) {
echo '<b><big>Ответьте на секретный вопрос:</big></b><br />';
echo '<div class="form">';
echo '<form method="post" action="lostpassword.php?act=answer&' . SID . '">';
echo $user['users_secquest'] . '<br />';
echo '<input name="answer" type="text" maxlength="30" /><br />';
echo 'Проверочный код:<br /> ';
echo '<input name="provkod" size="6" maxlength="6" /> ';
if ($config['protectimg'] == 1) {
echo '<img src="../gallery/protect.php?' . SID . '" alt="" /><br />';
} else {
echo '<b>' . $_SESSION['protect'] . '</b><br />';
}
echo '<input name="uz" type="hidden" value="' . $uz . '" />';
echo '<br /><input value="Восстановить" type="submit" /></form></div><br />';
}
if (empty($user['users_email']) && empty($user['users_secquest'])) {
echo '<img src="../images/img/error.gif" alt="image" /> <b>Невозможно восстановить пароль!</b><br />';
echo 'Нет технической возможности восстановить пароль, так как у данного пользователя не указан адрес почтового ящика и не установлен секретный вопрос<br />';
echo 'Для того чтобы вернуть доступ к своему аккаунту необходимо связаться с администрацией сайта<br /><br />';
}
} else {
show_error('Ошибка! Пользователь с данным логином не зарегестрирован!');
}
} else {
show_error('Ошибка! Вы не ввели логин пользователя для восстановления!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="lostpassword.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Подтверждение восстановления ##
# ###########################################################################################
case 'send':
$uz = check(strval($_POST['uz']));
$email = check(strval($_POST['email']));
$provkod = abs(intval($_POST['provkod']));
if (!empty($uz)) {
if (!empty($email)) {
if ($_SESSION['protect'] == $provkod) {
$user = DB :: $dbh -> queryFetch("SELECT * FROM `users` WHERE `users_login`=? LIMIT 1;", array($uz));
if (!empty($user)) {
if ($email == $user['users_email']) {
if ($user['users_timepasswd'] < SITETIME) {
unset($_SESSION['protect']);
$restkey = generate_password();
DB :: $dbh -> query("UPDATE `users` SET `users_keypasswd`=?, `users_timepasswd`=? WHERE `users_login`=?;", array($restkey, SITETIME + 43200, $uz));
// ---------------- Инструкция по восстановлению пароля на E-mail --------------------------//
addmail($user['users_email'], "Подтверждение восстановления пароля на сайте " . $config['title'], "Здравствуйте, " . nickname($user['users_login']) . " \nВами была произведена операция по восстановлению пароля на сайте " . $config['home'] . " \n\nДанные отправителя: \nIp: $ip \nБраузер: $brow \nОтправлено: " . date('j.m.Y / H:i', SITETIME) . "\n\nДля того чтобы восстановить пароль, вам необходимо перейти по ссылке: \n\n" . $config['home'] . "/mail/lostpassword.php?act=restore&uz=" . $user['users_login'] . "&key=" . $restkey . " \n\nЕсли это письмо попало к вам по ошибке или вы не собираетесь восстанавливать пароль, то просто проигнорируйте его");
echo 'Письмо с инструкцией по востановлению пароля успешно выслано на E-mail указанный в профиле<br />';
echo 'Внимательно прочтите письмо и выполните все необходимые действия для восстановления пароля<br />';
echo 'Восстанавливать пароль можно не чаще чем раз в 12 часов<br /><br />';
} else {
show_error('Ошибка! С момента последнего восстановления пароля прошло менее 12 часов!');
}
} else {
show_error('Ошибка! Веденный вами адрес e-mail не совпадает с адресом в профиле!');
}
} else {
show_error('Ошибка! Пользователь с данным логином не зарегестрирован!');
}
} else {
show_error('Ошибка! Проверочное число не совпало с данными на картинке!');
}
} else {
show_error('Ошибка! Не введен адрес почтового ящика для восстановления!');
}
} else {
show_error('Ошибка! Не введен логин пользователя для восстановления!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="lostpassword.php?act=remind&uz=' . $uz . '&' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Восстановление пароля ##
# ###########################################################################################
case 'restore':
$uz = check($_GET['uz']);
$key = check($_GET['key']);
if (!empty($uz)) {
if (!empty($key)) {
$queryuser = DB :: $dbh -> query("SELECT * FROM `users` WHERE `users_login`=? LIMIT 1;", array($uz));
$user = $queryuser -> fetch();
if (!empty($user)) {
if ($key == $user['users_keypasswd']) {
$newpass = generate_password();
$mdnewpas = md5(md5($newpass));
DB :: $dbh -> query("UPDATE `users` SET `users_pass`=?, `users_keypasswd`=?, `users_timepasswd`=? WHERE `users_login`=?;", array($mdnewpas, '', 0, $uz));
echo '<b>Пароль успешно восстановлен!</b><br />';
echo 'Ваши новые данные для входа на сайт<br /><br />';
echo 'Логин: <b>' . $user['users_login'] . '</b><br />';
echo 'Пароль: <b>' . $newpass . '</b><br /><br />';
echo '<img src="../images/img/open.gif" alt="image" /> ';
echo '<b><a href="' . BASEDIR . 'input.php?login=' . $user['users_login'] . '&pass=' . $newpass . '&cookietrue=1&' . SID . '">Вход на сайт</a></b><br /><br />';
echo 'Запомните и постарайтесь больше не забывать данные, а лучше сделайте сразу закладку на наш сайт ' . $config['home'] . '/input.php?login=' . $user['users_login'] . '&pass=' . $newpass . '<br /><br />';
echo 'Пароль вы сможете поменять в своем профиле<br /><br />';
// --------------------------- Восстановлению пароля на E-mail --------------------------//
addmail($user['users_email'], "Восстановление пароля на сайте " . $config['title'], "Здравствуйте, " . nickname($user['users_login']) . " \nВаши новые данные для входа на на сайт " . $config['home'] . " \nЛогин: " . $user['users_login'] . " \nПароль: " . $newpass . " \n\nЗапомните и постарайтесь больше не забывать данные, а лучше сделайте сразу закладку на наш сайт \n" . $config['home'] . "/input.php?login=" . $user['users_login'] . "&pass=" . $newpass . " \nПароль вы сможете поменять в своем профиле \nВсего наилучшего!");
} else {
show_error('Ошибка! Секретный код в ссылке не совпадает с данными в профиле!');
}
} else {
show_error('Ошибка! Пользователь с данным логином не зарегестрирован!');
}
} else {
show_error('Ошибка! Отсутствует секретный код в ссылке для восстановления пароля!');
}
} else {
show_error('Ошибка! Отсутствует логин в ссылке для восстановления пароля!');
}
break;
# ###########################################################################################
# # Ответ на секретный вопрос ##
# ###########################################################################################
case 'answer':
$uz = check(strval($_POST['uz']));
$answer = check(strval($_POST['answer']));
$provkod = abs(intval($_POST['provkod']));
if (!empty($uz)) {
if (!empty($answer)) {
if ($_SESSION['protect'] == $provkod) {
$user = DB :: $dbh -> queryFetch("SELECT * FROM `users` WHERE `users_login`=? LIMIT 1;", array($uz));
if (!empty($user)) {
if (!empty($user['users_secquest'])) {
if (md5(md5($answer)) == $user['users_secanswer']) {
unset($_SESSION['protect']);
$newpass = generate_password();
$mdnewpas = md5(md5($newpass));
DB :: $dbh -> query("UPDATE `users` SET `users_pass`=?, `users_keypasswd`=?, `users_timepasswd`=? WHERE `users_login`=?;", array($mdnewpas, '', 0, $uz));
echo '<b>Пароль успешно восстановлен!</b><br />';
echo 'Ваши новые данные для входа на сайт<br /><br />';
echo 'Логин: <b>' . $user['users_login'] . '</b><br />';
echo 'Пароль: <b>' . $newpass . '</b><br /><br />';
echo '<img src="../images/img/open.gif" alt="image" /> ';
echo '<b><a href="' . BASEDIR . 'input.php?login=' . $user['users_login'] . '&pass=' . $newpass . '&cookietrue=1&' . SID . '">Вход на сайт</a></b><br /><br />';
echo 'Запомните и постарайтесь больше не забывать данные, а лучше сделайте сразу закладку на наш сайт ' . $config['home'] . '/input.php?login=' . $user['users_login'] . '&pass=' . $newpass . '<br /><br />';
echo 'Пароль вы сможете поменять в своем профиле<br /><br />';
} else {
show_error('Ошибка! Ответ на секретный вопрос не совпадает с данными в профиле!');
}
} else {
show_error('Ошибка! У данного пользователя не установлен секретный вопрос!');
}
} else {
show_error('Ошибка! Пользователь с данным логином не зарегестрирован!');
}
} else {
show_error('Ошибка! Проверочное число не совпало с данными на картинке!');
}
} else {
show_error('Ошибка! Не введен ответ на секретный вопрос для восстановления!');
}
} else {
show_error('Ошибка! Не введен логин пользователя для восстановления!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="lostpassword.php?act=remind&uz=' . $uz . '&' . SID . '">Вернуться</a><br />';
break;
default:
header("location: lostpassword.php?" . SID);
exit;
endswitch;
} else {
show_error('Ошибка! Вы авторизованы, восстановление пароля невозможно!');
}
echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a><br />';
include_once ("../themes/" . $config['themes'] . "/foot.php");
?>