View file other/recover.php

File size: 2.42Kb
<?php
// by Mike O. (mides), coolcms.org
$title = 'Восстановление пароля';
require_once '../includes/sys.php';
require_once '../includes/header.php';

if ($u['id']) header('location: ../');

switch ($act) {
	default:	
		tp('Восстановления пароля');
		echo '<div class="body">';
		echo '<form name="form" action="?act=do" method="post" name="form">
		Ваш логин:<br /><input name="username" type="text" maxlength="12" size="12" /><br />
		Ваш E-mail:<br /><input name="email" type="text" maxlength="50" size="12" /><br />
		Провер. код:<br />
		<img src="../images/code.php" alt="" /><br />
		<input name="code" maxlength="5" size="12" /><br />
		<input name="submit" type="submit" value="Продолжить" /></form>';
		nav('login.php');
	break;

	case 'do':
		if (empty($_POST['username']) or empty($_POST['email']) or empty($_POST['code'])) {
			error('Вы не заполнили поля.');
			nav('?');
			break;
		}
		
		$code = intval($_POST['code']);
		if ($_SESSION['code'] != $code or empty($code)) {
			error('Вы ввели неверный проверочный код.');
			nav('?');
			break;
		}
		
		$username = check($_POST['username']);
		$email = check($_POST['email']);
		$new_pass = generate(8);
		
		$isset_u = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' and `email` = '$email'"), 0);
		if ($isset_u == 0) {
			error('Введенные данные неверны.');
			nav('?');
			break;
		}

		mysql_query("UPDATE `users` SET `password` = '".md5(md5($new_pass))."' WHERE `username` = '$username'");

		// sending e-mail
		$email_a = 'robot@'.HOME;
		$message = 'Уважаемый пользователь!
		Вы запросили смену пароля на сайте '.$config['copy'].'.
		Ваш новый пароль: '.$new_pass.'
		Автологин: http://'.HOME.'/a.php?l='.$username.'&p='.$new_pass.'
		---
		С уважением, администрация '.$config['copy'];
		
		mail($email, '=?utf-8?B?'.base64_encode('Смена пароля на '.HOME).'?=', $message, "From: $email_a\r\nContent-type: text/plain; charset=utf-8;\r\nX-Mailer: PHP;");
		
		info('Новый пароль был сгенерирован и выслан на Ваш e-mail.');
		nav('login.php');
		session_destroy();

break;

}

require_once '../includes/tail.php';
?>