<?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);



print
('
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#999999">
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td bgcolor="#f0f0f0">
<table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr bgcolor="#cccccc">
<td width="50%"><big><b>Регистрация</b></big></td><td width="50%">Пожалуйста заполните все поля!</td></tr>
');
echo
(
"<form action='".PATH."/".VERSION."/registration/?".SESSION."' method='post'>\n".
"<tr><td><b>Пароль(max. 70):</b></td>\n".
"<td><input type='text' name='password' maxlength='12' /></td></tr>\n".
"<tr><td><b>E-mail:</b></td>\n".
"<td><input type='text' name='email' maxlength='40' /></td></tr>\n".
"<tr><td><b>URL сайта:</b></td>\n".
"<td><input type='text' name='url' maxlength='30' value='http://' /></td></tr>\n".
"<tr><td><b>Описание сайта(max. 70):</b></td>\n".
"<td><input type='text' name='about' maxlength='70' /></td></tr>\n".
"<tr><td><b>Цвет счетчика:</b></td>\n".
"<td><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></td></tr>\n".

"<tr><td><b>Категория:</b></td>\n".
"<td><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></td></tr>\n".
"<tr><td><input type='hidden' name='sid' value='".$session->sid."' /></td>\n".
"<td><img src='".PATH."/code.php?".$session->sid."' alt='Loading' width='40' height='20' /></td></tr>\n".
"<tr><td><b>Введите код с картинки:</b></td>\n".
"<td><input type='text' name='code' maxlength='4' /></td></tr>\n".
"<td><input type='hidden' name='action' value='1' /></td></tr>\n".
"<tr><td><input type='submit' value='Зарегистрироваться' /></td></tr>\n".
"</form>\n");

print
('
</form>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
');


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


	if(!empty($error))
	{
	   print
       ('
       <table width="100%" border="0" cellspacing="1" cellpadding="4">
       <tr bgcolor="#cccccc">
       <td width="50%"><big><b>Ошибка</b></big></td>
       </tr>
       ');

	echo($error);

      print
     ('
     </table>
     ');


	   print
       ('
       <table width="100%" border="0" cellspacing="1" cellpadding="4">
       <tr bgcolor="#cccccc">
       <td width="50%"><big><a href="'.PATH.'/'.VERSION.'/registration/?'.SESSION.'">Назад</a></big></td>
       </tr>
       ');

     print
     ('
     </table>
     ');
	break;
	}

	if(!fsockopen($url, 80, $errno, $errstr, 3))
	{

	   print
       ('
       <table width="100%" border="0" cellspacing="1" cellpadding="4">
       <tr bgcolor="#cccccc">
       <td width="50%"><big><b>Ошибка</b></big></td>
       </tr>
       ');


	 echo("<tr><td style=\"color:#333333\">Не удается соединиться с сервером '".$url."' для регистрации в рейтинге.</td></tr>\n");
	 print
     ('
     </table>
     ');

	   print
       ('
       <table width="100%" border="0" cellspacing="1" cellpadding="4">
       <tr bgcolor="#cccccc">
       <td width="50%"><big><a href="'.PATH.'/'.VERSION.'/registration/?'.SESSION.'">Назад</a></big></td>
       </tr>
       ');

     print
     ('
     </table>
     ');
	break;
	}

	$url = "http://".$url;

$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);


print
('
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#999999">
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td bgcolor="#f0f0f0">
<table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr bgcolor="#cccccc">
<td width="50%">#</td><td width="50%">Данные</td></tr>
');
echo
(
"<tr><td><b>Ваша регистрация принята. Сайт появляется в рейтинге сайтов после первого показа счетчика ежедневно.</b></td></tr>\n".
"<tr bgcolor=\"#dddddd\"><td>ВКод на сайт:</td><td><b>&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;</b></td></tr>\n".
"<tr bgcolor=\"#dddddd\"><td>E-mail:</td><td>".$email."</td></tr>\n".
"<tr bgcolor=\"#dddddd\"><td>Парoль:</td><td>".$password."</td></tr>\n".
"<tr bgcolor=\"#dddddd\"><td>URL сайта:</td><td>".$url."</td></tr>\n".
"<tr bgcolor=\"#dddddd\"><td>O cайте:</td><td>".$about."</td></tr>\n".
"<tr bgcolor=\"#dddddd\"><td><a href='".PATH."/".VERSION."/login/?email=".$email."&amp;password=".$password."'><b>Панель управления</b></a></td></tr>\n");
print
('
</form>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
');
}
while(true === false);

?>