File size: 4.79Kb
<?
/*
=============================================
Движок: SHCMS Engine
=============================================
Название файла: Восстановление пороля
=============================================
Official website: http://shcms.ru
=============================================
*/
define('SHCMS', true);
include_once'../system/inc/basic_settings.php';
$shcmsengine['title'] = Lang::get('Восстановление пороля');
include_once'../template/head.php';
if(isset($user_id)){
header("Refresh:1; url=/index.php");
exit();
}
if($settings_shcms['passcode'] == 2) {
errors(Lang::get('Восстановления пароля временно недоступно'));
include_once'../template/foot.php';
exit;
}
if(isset($_POST['email']))
{$email = $_POST['email'];}
if(isset($_GET['id']))
{$id = $_GET['id'];}
switch($act):
default:
echo '<form action="flogged.php?act=passlist" method="post">';
echo Lang::get('Ваш E-Mail:').'<br/><input type="text" name="email" /></p>';
echo '<p><input type="submit" value="'.Lang::get('Восстановить').'"/></p></form>';
echo '<small>'.Lang::get('* Пороль могут восстановить пользователи которые заполнили email в личных данных').'</small>';
break;
case 'passlist':
if(empty($email))
{
errors(Lang::get("Вы не ввели E-mail"));
header("Refresh: 1; url=flogged.php");
include_once'../template/foot.php';
exit;
}
$email_pass = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `email` = '$email'"));
if($email_pass['email'] == false)
{
errors(Lang::get("Введенный вами E-mail не зарегистрирован на сайте"));
header("Refresh: 1; url=flogged.php");
include_once'../template/foot.php';
exit;
}
$subject = Lang::get('Восстановление пароля');
$mail .= Lang::get("Чтобы восстановить ваш пороль перейдите по ссылке:")."
http://$_SERVER[HTTP_HOST]/shcms/flogged.php?act=change&id=" . $email_pass['id'] . "&code=" . session_id() . "\n\n";
$adds ="From: SHCMS Engine <shcms@".$_SERVER['HTTP_HOST'].">\r\n" .
$adds .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
if (mail($email_pass['email'], $subject, $mail, $adds))
{
mysql_query("UPDATE `users` SET `flogged_n` = '" . session_id() . "', `flogged_t` = '$time_date' WHERE `id` = '" . $email_pass['id'] . "'");
echo Lang::get('<p>Все данные были отправлены на ваш E-mail <b>(%s)</b> зайдите на вашу почту и закончите процесс.</p>',$email);
}
else {
echo Lang::get('<p>Произошли сбои при отправки E-mail</p>');
}
break;
case 'change':
$pass_new = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '$id' LIMIT 1"));
if ($pass_new['flogged_t'] < (time()-3600))
{
errors(Lang::get('Время восстановления пороля исчерпано'));
mysql_query("UPDATE `users` SET `flogged_n` = '', `flogged_t` = '' WHERE `id` = '$id'");
header("Refresh: 1; url=/index.php");
include_once'../template/foot.php';
exit;
}
if(isset($_POST['submit'])) {
$submit = $_POST['submit'];
}
if(isset($submit))
{
if (empty($pass_new['flogged_n']) || empty($pass_new['flogged_t']))
{
errors(Lang::get("Вы неправильно восстановили пороль"));
header("Refresh: 1; url=/index.php");
include_once'../template/foot.php';
exit;
}
if(isset($_POST['pass1'])) {
$pass1 = $_POST['pass1'];
}
if(isset($_POST['pass2'])) {
$pass2 = $_POST['pass2'];
}
if(empty($pass1) and empty($pass2))
{
errors(Lang::get("Вы не ввели новый пороль"));
include_once'../template/foot.php';
exit;
}
if($pass1 == $pass2)
{
mysql_query("UPDATE `users` SET `flogged_n` = '', `password` = '" . md5(md5($pass1)) . "' WHERE `id` = '$id'");
echo Lang::get('Ваш пороль был успешно сменен на <b>%s</b><br/><hr/>Для безопастности новый пороль вам был выслан на ваш E-mail',$pass1);
include_once'../template/foot.php';
exit;
}
}
echo '<form action="?act=change&id='.$id.'&code='.session_id().'" method="post">';
echo Lang::get('Новый пороль:').'<br/> <input type="text" name="pass1"><br/>';
echo Lang::get('Повторить новый пороль:').'<br/> <input type="text" name="pass2"><br/>';
echo '<input type="submit" name="submit" value="'.Lang::get('Сменить пороль').'">';
break;
endswitch;
include_once'../template/foot.php';
?>