<?php
###############################################
#  by MaZaFaKa                                #
#  ICQ: 449-559                               #
#  E-mail: Dimonnet@inbox.ru                  #
#  Потраченное время: Около 2х недель         #
###############################################


define("SPTMP", "/tmp/code/");
$dh = opendir(ROOTPATH.SPTMP);

while(($filename = readdir($dh)) !== false)
{
if(is_file(ROOTPATH.SPTMP.$filename))
{
if(fileatime(ROOTPATH.SPTMP.$filename) < (time() - 300)) unlink(ROOTPATH.SPTMP.$filename);
}
}
closedir($dh);

if(!isset($_POST['action']))
{

include(ROOTPATH."/includes/classes/sid.class");
$code=rand(1000, 9999);
$session = new session();
$session->__construct("", ROOTPATH.SPTMP);
$session->put_info($code);

echo(
"ID:<br />\n".
"<input type='text' name='id".$sid."' maxlength='10' format='*N' /><br />\n".
"E-mail:<br />\n".
"<input type='text' name='email".$sid."' maxlength='40' /><br />\n".
"<img src='".PATH."/code.php?".$session->sid."' alt='Loading' width='40' height='20' /><br />\n".
"Введите код с картинки:<br />\n".
"<input type='text' name='code".$sid."' format='*N' maxlength='4' /><br />\n".
"<anchor>[Вспомнить]<go href='".PATH."/forgot/?sid=".$sid."' method='post'>\n".
"<postfield name='id' value='$(id".$sid.")' />\n".
"<postfield name='email' value='$(email".$sid.")' />\n".
"<postfield name='code' value='$(code".$sid.")' />\n".
"<postfield name='action' value='SportSoft' />\n".
"<postfield name='sid' value='".$session->sid."' />\n".
"</go></anchor><br />\n");
}
else
{
	do
	{
	$id = (int) $_POST['id'];
	$email = trim($_POST['email']);
	$code = (int) $_POST['code'];
	$sid = (string) $_POST['sid'];

	if(get_magic_quotes_gpc()) $email = stripslashes($email);
	$email = mysql_escape_string($email);


	//PROTECTION
	$error = "";

	if(is_file(ROOTPATH.SPTMP.$sid)) $realcode = (int) file_get_contents(ROOTPATH.SPTMP.$sid);
	if(!preg_match("/^([a-z0-9]{9})$/", $sid) || !file_exists(ROOTPATH.SPTMP.$sid)) $error .= "Ошибочная сессия.<br />\n";
	elseif($code == 0) $error .= "Вы не ввели код с картинки.<br />\n";
	elseif($realcode != $code) $error .= "Вы ввели неверный код с картинки.<br/>\n";
	//SESSION DESTROY
	if(is_file(ROOTPATH.SPTMP.$sid)) unlink(ROOTPATH.SPTMP.$sid);

	if(empty($id)) $error .= "Вы не заполнили поле 'ID'<br />\n";
	elseif($id < 1) $error .= "Неверное значение в поле 'ID'<br/>\n";

	if(empty($email)) $error .= "Вы не заполнили поле 'E-mail'<br/>\n";
	elseif(!preg_match("/^[0-9a-z_]+@[0-9a-z_\.]+\.[a-z]{2,4}$/i", $email)) $error .= "Введите e-mail в формате admin@".$_SERVER['HTTP_HOST']."<br />\n";

		if(!empty($error))
		{
		echo($error);
		echo("<a href='".PATH."/".VERSION."/forgot/?".SESSION."'>Назад</a><br />\n");
		break;
		}

		$sql = mysql_query("SELECT * FROM `".USERS."` WHERE `id` = ".$id." AND `email` = '".$email."';");
		if(mysql_affected_rows() < 1)
		{
		echo("Регистрационные данные не совпадают<br />\n");
		break;
		}
		else
		$ud = @mysql_fetch_assoc($sql);

		//MAIL
		$subject = "Восстановление пароля в ".$_SERVER['HTTP_HOST'];

		$body = "";
		$body .= "С IP ".getenv('REMOTE_ADDR')." поступила заявка на восстановление пароля!\n";
		$body .= "Вaши дaнные:\n";
		$body .= "ID: ".$id."\nPassword: ".$ud['password']."\n";
		$body .= "URL caйтa: ".$ud['url']."\n";
		$body .= "Ccылкa в пaнeль yпpaвлeния:\n";
		$body .= "http://".$_SERVER['HTTP_HOST'].PATH."/".VERSION."/login/?id=".$id."&password=".$ud['password']."\n";

		$headers = "";
		$headers .= "From: ".EMAIL." \n";
		$headers .= "Content-Type: text/plain; charset=utf-8\n";
		mail($email, $subject, $body, $headers);

		echo("Пароль был выслан на E-mail, указанный при регистрации!<br />\n");

	}
	while(true === false);
}

echo(
"---<br />\n".
"<a href='".PATH."/".VERSION."/?".SESSION."'>".NAME."</a><br />\n");

?>