<?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(
"Пароль:<br />\n".
"<input type='text' name='password' maxlength='12' /><br />\n".
"E-mail:<br />\n".
"<input type='text' name='email' maxlength='40' /><br />\n".
"URL сайта:<br />\n".
"<input type='text' name='url' maxlength='30' value='http://' /><br />\n".
"О сайте:<br />\n".
"<input type='text' name='about' maxlength='70' /><br />\n".
"Цвет счетчика:<br />\n".
"<select name='image'>\n".
"<option value='1'>Синий</option>\n".
"<option value='2'>Зелёный</option>\n".
"<option value='3'>Красный</option>\n".
"<option value='4'>Серый</option>\n".
"<option value='5'>Оранжевый</option>\n".
"</select><br />\n".
"Категория:<br />\n".
"<select name='category'>\n");

$sql = mysql_query("SELECT `id`, `description` FROM `".CATEGORY."` ORDER BY `position` ASC;");

	if(mysql_num_rows($sql) > 0)
	{
		while($cat = mysql_fetch_assoc($sql))
		{
			echo("<option value='".$cat['id']."'>".$cat['description']."</option>\n");
		}
	}

echo(
"</select><br />\n".
"<img src='".PATH."/code.php?".$session->sid."' alt='Loading' width='40' height='20' /><br />\n".
"Введите код с картинки:<br />\n".
"<input type='text' name='code' format='*N' maxlength='4' /><br />\n".
"<anchor>[Зарегистрироваться]<go href='".PATH."/".VERSION."/registration/?".SESSION."' method='post'>\n".
"<postfield name='password' value='$(password)' />\n".
"<postfield name='email' value='$(email)' />\n".
"<postfield name='url' value='$(url)' />\n".
"<postfield name='about' value='$(about)' />\n".
"<postfield name='image' value='$(image)' />\n".
"<postfield name='category' value='$(category)' />\n".
"<postfield name='code' value='$(code)' />\n".
"<postfield name='action' value='1' />\n".
"<postfield name='sid' value='".$session->sid."' />\n".
"</go></anchor><br />\n".
"---<br />");
}
else do
{
$password = trim($_POST['password']);
$email = trim($_POST['email']);
$name = (string) $_POST['name'];
$about = (string) $_POST['about'];
$image = (int) $_POST['image'];
$category = (int) $_POST['category'];
$code = (int) $_POST['code'];
$sid = (string) $_POST['sid'];
$site = (string) $_POST['url'];
$url_parse = parse_url($site);
$url = $url_parse['host'];

	if(get_magic_quotes_gpc())
	{
	$password = stripslashes($password);
	$email = stripslashes($email);
	$url = stripslashes($url);
	$name = stripslashes($name);
	$about = stripslashes($about);
	}

$email = mysql_escape_string($email);
$password = mysql_escape_string($password);
$url = htmlspecialchars(mysql_escape_string(trim($url)));
$name = htmlspecialchars(mysql_escape_string(trim($name)), ENT_QUOTES);
$about = htmlspecialchars(mysql_escape_string(trim($about)), ENT_QUOTES);


        $url=str_replace("http://","",$url);

//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($password)) $error .= "Вы не заполнили поле 'Пароль'<br />\n";
elseif(!preg_match("/^[0-9a-zA-Z]*$/", $password)) $error .= "Пароль может содержать только латинские буквы и цифры<br />\n";
if(empty($email)) $error .= "Заполните поле 'E-mail'<br />\n";
elseif (!preg_match("/^[-0-9a-z_^\.]+@[-0-9a-z_^\.]+\.[a-z]{2,3}$/i", $email)) $error .= "Введите e-mail в формате admin@".$_SERVER['HTTP_HOST']."<br />\n";
$m=mysql_query("SELECT * FROM `".USERS."` WHERE email='".$email."';");
if (mysql_affected_rows()>0)
{
$error .= "Аккаунт с таким E-mail уже зарегистрирован у нас!<br />\n";
}
if(empty($url)) $error .= "Вы не заполнили поле 'URL сайта'<br />\n";
elseif(!file_get_contents("http://".$url)) $error .= "Поле 'URL сайта' содержит плохие символы<br />\n";
if($category < 1) $error .= "Вы не заполнили поле 'Категория'.<br />\n";
elseif(mysql_num_rows(mysql_query("SELECT * FROM `".CATEGORY."` WHERE `id` = ".$category.";")) < 1) $error .= "Ошибка! Поле 'Категория' заполнено неверно.<br />\n";
if(empty($about)) $error .= "Вы не заполнили поле 'О сайте'.<br />\n";
elseif(mb_strlen($about) < 3 || mb_strlen($userx) > 70)  $error .= "Сильно длинное описание!<br />\n";
if(empty($image)) $error .= "Вы не заполнили поле 'Цвет счётчика'.<br />\n";
elseif($image < 1 || $image > 11) $error .= "Неверное значение в поле 'Цвет счётчика'<br />\n";

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

	if(!fsockopen($url, 80, $errno, $errstr, 3))
	{
	echo("Не удается соединиться с сервером '".$url."' для регистрации в рейтинге.<br />\n");
	echo("<a href='".PATH."/".VERSION."/registration/?".SESSION."'>Назад</a><br />\n");
	break;
	}


$q = mysql_query("INSERT INTO `".USERS."` SET `password` = '".$password."', `email` = '".$email."', `regdate` = ".time().", `status` = 'user', `url` = '".$url."', `category` = ".$category.", `about` = '".$about."', `image` = ".$image.";");
$id = mysql_insert_id();
//MAIL
$subject = "Регистрация в ".$_SERVER['HTTP_HOST'];

$body = "";
$body .= "Вы зapeгиcтриpoвaны в рейтинге сайтов ".$_SERVER['HTTP_HOST'].".\nВaши дaнные:\n";
$body .= "Ссылка на сайт: <a href='http://".$_SERVER['HTTP_HOST'].PATH."/click.php?".$id."'><img src='http://".$_SERVER['HTTP_HOST'].PATH."/image.php?".$id."' alt='".getenv('HTTP_HOST')."' /></a>\n".
$body .= "E-mail: ".$email."\nPassword: ".$password."\n";
$body .= "Описание сайта: ".$about."\n";
$body .= "URL caйтa: ".$url."\n";
$body .= "Ccылкa в пaнeль yпpaвлeния:\n";
$body .= "http://".$_SERVER['HTTP_HOST'].PATH."/".VERSION."/login/?email=".$email."&password=".$password."\n";

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

echo(
"Ваша регистрация принята. Сайт появляется в рейтинге сайтов после первого показа счетчика ежедневно.<br />\n".
"Ваши данные:<br />\n".
"Wml-код на сайт: &lt;a href='http://".$_SERVER['HTTP_HOST'].PATH."/click.php?".$id."'&gt;&lt;img src='http://".$_SERVER['HTTP_HOST'].PATH."/image.php?".$id."' alt='".getenv('HTTP_HOST')."' /&gt;&lt;/a&gt;<br />\n".
"E-mail: ".$email."<br/>\n".
"Парoль: ".$password."<br />\n".
"URL сайта: ".$url."<br />\n".
"O cайте: ".$about."<br />\n".
"<a href='".PATH."/".VERSION."/login/?email=".$email."&amp;password=".$password."'>Панель управления</a><br/>\n");
}
while(true === false);

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