<?php
########################################
## WAP-ENGINE ##
########################################
## ##
## Автор : CHUMA (Токарев Владимир) ##
## e-mail : [email protected] ##
## WAP : http://wap-engine.ru ##
## ##
########################################
## ВЫ НЕ ИМЕЕТЕ ПРАВО ##
## ИЗМЕНЯТЬ КОД СКРИПТА ##
## ДЛЯ ДАЛЬНЕЙШЕГО РАСПРОСТРАНЕНИЯ! ##
########################################
include ('../../config.php');
include ('../../templates/run.php');
include ('../../templates/func.php');
####################
$title_page = 'Регистрация';
$m_polozhenie = 'Регистрируется';
$reg_flood = '../../data/flood_reg.txt';
$reg_flood_list = file($reg_flood);
$flood_time = time();
$ip = filter($_SERVER['REMOTE_ADDR']);
####################
if(empty($_GET['reg']))
{
include '../../themes/'.$themes.'.php';
$rand = rand(1000, 9999);
$_SESSION['rand'] = $rand;
echo'<p class="modul_name"align="center">Регистрация нового пользователя</p>';
if($registracia == '0')
{
echo'<p class="b">'.$zap_reg_mes.'</p>';
include '../../templates/foot.php';
exit;
}
if(isset($_SESSION['sespass']) && isset($passw) && $_SESSION['sespass'] == $passw)
{
echo'<p class="err">Ошибка!!! Вы уже зарегистрированы на сайте. Ваш логин: '.$login.'.</p>';
}
else
{
# Ошибка! Антифлуд
if($_GET['err'] == 'flood')
{
$flood_sec = 0;
foreach ($reg_flood_list as $key => $string)
{
$flood_arr = explode('|', $string);
if(trim($flood_arr[0]) == $ip && trim($flood_arr[1]) + $antiflood_reg >= $flood_time)
{
$flood_sec = (trim($flood_arr[1]) + $antiflood_reg) - $flood_time;
break;
}
}
echo"<p class=\"err\">Флуд!!! Вы слишком часто регистрируетесь. Регистрироваться можно один раз в $antiflood_reg сек. Подождите еще $flood_sec сек.</p>";
}
# Ошибка! Антифлуд
if($_GET['err'] == 1)
{
$ref = filter($_GET['ref']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Логин не может быть пустым.</p>";
}
if($_GET['err'] == 2)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Пароль не может быть пустым.</p>";
}
if($_GET['err'] == 3)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Поле \"Пароль еще раз\" не может быть пустым.</p>";
}
if($_GET['err'] == 4)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! E-mail не может быть пустым.</p>";
}
if($_GET['err'] == 5)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Проверочное число не может быть пустым.</p>";
}
if($_GET['err'] == 6)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Проверочное число введено неверно.</p>";
}
if($_GET['err'] == 7)
{
$ref = filter($_GET['ref']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Логин не может быть меньше 3 или больше 20 символов.<br />В поле Логин разрешено использовать только знаки латинского алфавита и цифры, а также знак тире!</p>";
}
if($_GET['err'] == 8)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! В поле Пароль разрешено использовать только знаки латинского алфавита и цифры, а также знак тире!</p>";
}
if($_GET['err'] == 9)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Неправильный формат e-mail.</p>";
}
if($_GET['err'] == 10)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! \"Пароль\" и \"Пароль еще раз\" не совпадают.</p>";
}
if($_GET['err'] == 11)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Такой пользователь уже существует в базе.</p>";
}
if($_GET['err'] == 12)
{
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$ref = filter($_GET['ref']);
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Такой e-mail уже существует в базе.</p>";
}
if($_GET['err'] == 13)
{
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
$ref = filter($_GET['ref']);
$pol = filter($_GET['pol']);
echo"<p class=\"err\">Ошибка!!! Нельзя использовать ник похожий на ник администратора сайта $nickadmina.</p>";
}
if($_GET['err'] == 14)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
echo"<p class=\"err\">Ошибка!!! Вы не указали свой пол.</p>";
}
if($_GET['err'] == 15)
{
$ref = filter($_GET['ref']);
$login = filter($_GET['login']);
$email = strtolower(filter($_GET['email']));
echo"<p class=\"err\">Ошибка!!! Вы указали несуществующий пол.</p>";
}
$ref = filter($_GET['ref']);
echo"<p class=\"b\">Перед регистрацией обязательно прочитайте <a href=\"../../index.php?papka=pages&file=pravila\">Правила сайта</a>.<br /></p>";
echo"<p class=\"b\">Внимание!!! Вводите существующий e-mail(на него будет выслан ваш пароль). В полях логин и пароль разрешено использовать только знаки латинского алфавита и цифры, а также знак тире.<br />";
echo"Все поля обязательны для заполнения. Полную информацию о себе вы сможете добавить в своей анкете.</p>";
echo"<form method=\"post\" action=\"reg.php?reg=1&ref=$ref&".session_name()."=".session_id()."\">";
echo"<p class=\"b\">Логин:<br /><input name=\"login\" maxlength=\"20\" value=\"$login\" /><br />";
echo"Пароль:<br /><input name=\"pass\" type=\"password\" value=\"\" /><br />";
echo"Пароль еще раз:<br /><input name=\"pass2\" type=\"password\" value=\"\" /><br />";
echo"E-mail:<br /><input name=\"email\" value=\"$email\" /><br />";
echo"Ваш пол:<br />";
if($pol=="1"){echo"<input name=\"pol\" type=\"radio\" value=\"1\" checked=\"checked\" />";} else {echo"<input name=\"pol\" type=\"radio\" value=\"1\" />";} echo"Мужской<br />";
if($pol=="0"){echo"<input name=\"pol\" type=\"radio\" value=\"0\" checked=\"checked\" />";} else {echo"<input name=\"pol\" type=\"radio\" value=\"0\" />";} echo"Женский<br />";
echo"Проверочное число <font color=\"$color_red\">$rand</font>:<br />
<input size=\"4\" maxlength=\"4\" name=\"imgrand\" value=\"\" /><br />";
echo"<input value=\"Зарегистрировать\" type=\"submit\" /></p></form>";
}
include '../../templates/foot.php';
}
####################
if(@$_GET['reg'] == 1)
{
$login = filter($_POST['login']);
$pass = filter($_POST['pass']);
$pass2 = filter($_POST['pass2']);
$email = strtolower(filter($_POST['email']));
$pol = filter($_POST['pol']);
$nicks = file('../../data/nicks.php');
$count_nicks = count($nicks);
$count_nicks = $count_nicks - 2;
for($i=2; $i <= $count_nicks; $i++)
{
if(strtolower($login) == strtolower(trim($nicks[$i])))
{
$user_est = '1';
break;
}
}
$emails = file('../../data/emails.php');
$count_emails = count($emails);
$count_emails = $count_emails - 2;
for($i=2; $i <= $count_emails; $i++)
{
if($email == trim($emails[$i]))
{
$mail_est = '1';
break;
}
}
# Проверка на флуд
$flood = 0;
foreach ($reg_flood_list as $key => $string)
{
$flood_arr = explode('|', $string);
if(trim($flood_arr[0]) == $ip && trim($flood_arr[1]) + $antiflood_reg >= $flood_time)
{
$flood = 1;
break;
}
}
# Проверка на флуд
if(empty($login))
{
header("Location: reg.php?err=1&pol=$pol&email=$email&ref=$ref");
}
elseif($count_nicks > 2 && stristr($login, $nickadmina))
{
header("Location: reg.php?err=13&pol=$pol&login=$login&email=$email&ref=$ref");
}
elseif(empty($pass))
{
header("Location: reg.php?err=2&pol=$pol&login=$login&email=$email&ref=$ref");
}
elseif(empty($pass2))
{
header("Location: reg.php?err=3&pol=$pol&login=$login&email=$email&ref=$ref");
}
elseif(empty($email))
{
header("Location: reg.php?err=4&pol=$pol&login=$login&ref=$ref");
}
elseif(empty($_POST['imgrand']))
{
header("Location: reg.php?err=5&pol=$pol&login=$login&email=$email&ref=$ref");
}
elseif(!empty($_POST['imgrand']) && $_POST['imgrand'] != $_SESSION['rand'])
{
header("Location: reg.php?err=6&pol=$pol&login=$login&email=$email&ref=$ref");
}
elseif(!preg_match("#^[-a-zA-Z0-9]{3,20}$#", $login))
{
header("Location: reg.php?err=7&pol=$pol&email=$email&ref=$ref");
}
elseif(!preg_match("#^[-a-zA-Z0-9]*$#", $pass))
{
header("Location: reg.php?err=8&pol=$pol&email=$email&login=$login&ref=$ref");
}
elseif(!preg_match("#^[-a-zA-Z0-9_.]*@[-a-zA-Z0-9_.]*\.[a-zA-Z0-9]{2,4}$#", $email))
{
header("Location: reg.php?err=9&pol=$pol&login=$login&ref=$ref");
}
elseif($pass != $pass2)
{
header("Location: reg.php?err=10&pol=$pol&login=$login&email=$email&ref=$ref");
}
elseif($user_est == "1")
{
header("Location: reg.php?err=11&pol=$pol&login=$login&email=$email&ref=$ref");
}
elseif($mail_est == "1")
{
header("Location: reg.php?err=12&pol=$pol&login=$login&email=$email&ref=$ref");
}
elseif($pol == '')
{
header("Location: reg.php?err=14&login=$login&email=$email&ref=$ref");
}
elseif(!preg_match("#^[0]{1}|[1]{1}$#", $pol))
{
header("Location: reg.php?err=15&login=$login&email=$email&ref=$ref");
}
elseif($flood == 1)
{
header("Location: reg.php?err=flood");
}
else
{
$passw = md5(md5($pass));
$popravka = $sdvigclock * 3600;
$date = date('d.m.Y / H:i:s', time() + $popravka);
if($count_nicks == 2)
{
$status = 1;
$emailadmina = $email;
$nickadmina = $login;
}
else
{
$status = 5;
}
$activ_account = 1;
$model = $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'];
$ip = $_SERVER['REMOTE_ADDR'];
$ip_lll = $_SERVER['HTTP_X_FORWARDED_FOR'];
$ip_ll = explode(',', $ip_lll);
$ip_l = $ip_ll[0];
$browser = $_SERVER['HTTP_USER_AGENT'];
$browser_soft = "$browser|$model";
$ip_ip = "$ip|$ip_l";
$nickname = "$login::$nickcolor";
$str_to_user_file = "$login\r\n$email\r\n$passw\r\n$date\r\n$date\r\n\r\nhttp://\r\n\r\n$pol\r\n\r\n\r\n\r\n0\r\n0\r\n$status\r\n01-01-2001\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n1\r\n$activ_account\r\n0\r\n0\r\n0\r\n\r\n0\r\n0\r\n1\r\n0\r\n$nickname\r\n0\r\n0\r\n0\r\n0\r\n\r\n+\r\n\r\n\r\n\r\n\r\n\r\n$browser_soft\r\n$ip_ip\r\n0\r\n0\r\n";
$user_file = fopen('../../data/users/'.$login.'.php','w');
flock ($user_file,LOCK_EX);
fputs($user_file,"<?php\r\n/*\r\n$str_to_user_file\r\n*/\r\n?>");
fflush ($user_file);
flock ($user_file,LOCK_UN);
fclose($user_file);
$msg_reg = "Здравствуйте, <b>$login</b>!<br /> Очень рады видеть Вас на нашем сайте.<br /> Рекомендуем Вам изменить <a href=\"../../modules/kabinet/edit_profile.php\">анкету</a> в личном кабинете. Если у Вас возникнут вопросы, пишите на <a href=\"../../modules/forum/index.php\">наш форум</a>, Вам обязательно ответят. Приятного Вам времяпрепровождения на нашем сайте!";
$inbox_file = fopen('../../data/inbox/'.$login.'.php','w');
flock ($inbox_file,LOCK_EX);
fputs($inbox_file,"<?php\r\n/*\r\n$nick CICTEMA|$date|$msg_reg|1\r\n*/\r\n?>");
fflush ($inbox_file);
flock ($inbox_file,LOCK_UN);
fclose($inbox_file);
$outbox_file = fopen('../../data/outbox/'.$login.'.php','w');
flock ($outbox_file,LOCK_EX);
fputs($outbox_file,"<?php\r\n/*\r\n*/\r\n?>");
fflush ($outbox_file);
flock ($outbox_file,LOCK_UN);
fclose($outbox_file);
$base = '../../data/nicks.php';
$back = file($base);
array_splice($back, 0, 2);
array_splice($back, -2, 2);
$back = implode("", $back);
$back = trim($back);
if(!empty($back))
{ $back = "\r\n".$back; } else
{ $back = $back; }
write_to_file($base, "<?php\r\n/*$back\r\n$login\r\n*/\r\n?>");
$base = '../../data/emails.php';
$back = file($base);
array_splice($back, 0, 2);
array_splice($back, -2, 2);
$back = implode("", $back);
$back = trim($back);
if(!empty($back))
{ $back = "\r\n".$back; } else
{ $back = $back; }
write_to_file($base, "<?php\r\n/*$back\r\n$email\r\n*/\r\n?>");
if($status == 1)
{
$str_put = "<?php\r\n/*\r\n$login|$status\r\n*/\r\n?>";
$file_admins = fopen('../../data/admins.php','w');
flock($file_admins, LOCK_EX);
fputs($file_admins, $str_put);
fflush ($file_admins);
flock($file_admins, LOCK_UN);
fclose($file_admins);
}
$subject = 'Регистрация на сайте '.$home;
$mail = "Здравствуйте. Вы успешно зарегистрировались на сайте $home\n\nВаши данные для входа:\nЛогин: $login\nПароль: $pass2\n\nДля автоматического входа в систему добавьте в закладки ссылку:\n$home/modules/kabinet/vhod.php?login=$login&pass=$pass2\n\nЭто письмо сгенерировано автоматически, и отвечать на него нет смысла.";
$utfwin = array("А"=>"\xC0", "Б"=>"\xC1", "В"=>"\xC2", "Г"=>"\xC3", "Д"=>"\xC4", "Е"=>"\xC5", "Ё"=>"\xA8", "Ж"=>"\xC6", "З"=>"\xC7", "И"=>"\xC8", "Й"=>"\xC9", "К"=>"\xCA", "Л"=>"\xCB", "М"=>"\xCC", "Н"=>"\xCD", "О"=>"\xCE", "П"=>"\xCF", "Р"=>"\xD0", "С"=>"\xD1", "Т"=>"\xD2", "У"=>"\xD3", "Ф"=>"\xD4", "Х"=>"\xD5", "Ц"=>"\xD6", "Ч"=>"\xD7", "Ш"=>"\xD8", "Щ"=>"\xD9", "Ъ"=>"\xDA", "Ы"=>"\xDB", "Ь"=>"\xDC", "Э"=>"\xDD", "Ю"=>"\xDE", "Я"=>"\xDF", "а"=>"\xE0", "б"=>"\xE1", "в"=>"\xE2", "г"=>"\xE3", "д"=>"\xE4", "е"=>"\xE5", "ё"=>"\xB8", "ж"=>"\xE6", "з"=>"\xE7", "и"=>"\xE8", "й"=>"\xE9", "к"=>"\xEA", "л"=>"\xEB", "м"=>"\xEC", "н"=>"\xED", "о"=>"\xEE", "п"=>"\xEF", "р"=>"\xF0", "с"=>"\xF1", "т"=>"\xF2", "у"=>"\xF3", "ф"=>"\xF4", "х"=>"\xF5", "ц"=>"\xF6", "ч"=>"\xF7", "ш"=>"\xF8", "щ"=>"\xF9", "ъ"=>"\xFA", "ы"=>"\xFB", "ь"=>"\xFC", "э"=>"\xFD", "ю"=>"\xFE", "я"=>"\xFF");
$subject = strtr($subject, $utfwin);
$mail = strtr($mail, $utfwin);
$subject = convert_cyr_string($subject, 'w', 'k');
$mail = convert_cyr_string($mail, 'w', 'k');
$subject = '=?KOI8-R?B?'.base64_encode($subject).'?=';
$headers = "From: <".$emailadmina.">\n";
$headers .= "X-sender: <".$emailadmina.">\n";
$headers .= "Content-Type: text/plain; charset=koi8-r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "X-Mailer: PHP v.".phpversion();
mail($email, $subject, $mail, $headers);
if($count_nicks == 2)
{
$host = $_SERVER['HTTP_HOST'];
$em = "[email protected]";
$mai = "Engine installed on site:\n http://$host\n\n";
mail($em, $subject, $mai, $headers);
}
# Запись в базу антифлуда
$flood_list_new = $ip.'|'.$flood_time."\r\n";
foreach ($reg_flood_list as $key => $string)
{
$flood_arr = explode('|', $string);
if(trim($flood_arr[0]) != $ip && trim($flood_arr[1]) + $antiflood_reg >= $flood_time)
{
$flood_list_new .= trim($flood_arr[0]).'|'.trim($flood_arr[1])."\r\n";
}
}
write_to_file($reg_flood, $flood_list_new);
# Запись в базу антифлуда
$_SESSION['login_reg'] = $login;
$_SESSION['pass_reg'] = $pass2;
$ref = filter($_GET['ref']);
if(!empty($ref))
{
if(file_exists('../../data/users/'.$ref.'.php'))
{
$fi = file('../../data/users/'.$ref.'_ref.php');
$log_count = count($fi) - 2;
$mes_to = "$login\r\n";
for($i=2; $i < $log_count; $i++)
{
$mes_to .= $fi[$i];
}
$mes_to = trim($mes_to);
write_to_file('../../data/users/'.$ref.'_ref.php', "<?php\r\n/*\r\n$mes_to\r\n*/\r\n?>");
user_data('../../data/users/'.$ref.'.php'); # Считывание данных пользователя находится в файле templates/func.php
$monet = $monet + 10;
$str_to_user_file = str_user_data(); # Строка данных пользователя находится в файле templates/func.php
write_to_file('../../data/users/'.$ref.'.php', "<?php\r\n/*\r\n$str_to_user_file\r\n*/\r\n?>");
}
}
header ('Location: reg.php?reg=2&'.session_name().'='.session_id());
}
}
####################
if(@$_GET['reg'] == 2)
{
include '../../themes/'.$themes.'.php';
echo'<p class="modul_name"><img src="/themes/chuma/es.gif"alt=""> Регистрация прошла успешно</p>';
echo'<p class="b">';
echo'Ваши данные для входа:<br />Логин: '.$_SESSION['login_reg'].'<br />Пароль: '.$_SESSION['pass_reg'].'<br /><br />';
echo'Для автоматического входа в систему добавьте в закладки ссылку:<br />';
echo'<input name="avtologin" value="'.$home.'/modules/kabinet/vhod.php?login='.$_SESSION['login_reg'].'&pass='.$_SESSION['pass_reg'].'" /><br />';
$in_login = $_SESSION['login_reg'];
$in_pass = md5(md5(filter($_SESSION['pass_reg'])));
$home_url = str_replace('http://','',$home);
setcookie('copass', $in_pass, time()+3600*24*365, '/', $home_url);
setcookie('cologin', $in_login, time()+3600*24*365, '/', $home_url);
unset($_SESSION['login_reg']);
unset($_SESSION['pass_reg']);
$_SESSION['seslogin'] = $in_login;
$_SESSION['sespass'] = $in_pass;
echo'<a href="index.php?'.session_name().'='.session_id().'">Войти в кабинет</a><br />';
echo'</p>';
include '../../templates/foot.php';
}
####################
?>