<?
include ".config.php";
$Data = '<form action=?page=10 method=post>
<center>Логин:<br>
<font color="#FF0000">*</font><input type=text name=login><br>
Пароль:<br>
<font color="#FF0000">*</font><input type=password name=passwd><br>
Повтор пароля:<br>
<font color="#FF0000">*</font><input type=password name=repasswd><br>
Email:<br>
<font color="#FF0000">*</font><input type=text name=email><br><br>
<img src="captcha/img.php?'.session_name()."=".session_id().'"><br>
Введите текст с картинки:<br>
<font color="#FF0000">*</font><input type=text name=captcha><br>
<input type=submit name=submit value="Регистрация"><br>
<br><a href="/?page=12"><span class="green">Смена пароля от игрового аккаунта</span></a></center>
</form>';
function db_mssql_check_xss () {
$url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
if ($url) {
if ((strpos($url, '<') !== false) ||
(strpos($url, '>') !== false) ||
(strpos($url, '"') !== false) ||
(strpos($url, '\'') !== false) ||
(strpos($url, './') !== false) ||
(strpos($url, '../') !== false) ||
(strpos($url, '--') !== false) ||
(strpos($url, '.php') !== false)
)
{
die("Попытка взлома!");
}
}
$url = html_entity_decode(urldecode($_SERVER['REQUEST_URI']));
if ($url) {
if ((strpos($url, '<') !== false) ||
(strpos($url, '>') !== false) ||
(strpos($url, '"') !== false) ||
(strpos($url, '\'') !== false)
)
{
die("Попытка взлома!");
}
}
}
/*
Мощная функция обработки данных,
защищает от XSS и SQL Injection
поддержка защиты для MSSQL серверов
*/
function office_secure($check_string)
{
$ret_string = $check_string;
$ret_string = htmlspecialchars ($ret_string);
$ret_string = strip_tags ($ret_string);
$ret_string = trim ($ret_string);
$ret_string = str_replace ('\\l', '', $ret_string);
$ret_string = str_replace (' ', '', $ret_string);
$ret_string = str_replace("'", "", $ret_string );
$ret_string = str_replace("\"", "",$ret_string );
$ret_string = str_replace("--", "",$ret_string );
$ret_string = str_replace("#", "",$ret_string );
$ret_string = str_replace("$", "",$ret_string );
$ret_string = str_replace("%", "",$ret_string );
$ret_string = str_replace("^", "",$ret_string );
$ret_string = str_replace("&", "",$ret_string );
$ret_string = str_replace("(", "",$ret_string );
$ret_string = str_replace(")", "",$ret_string );
$ret_string = str_replace("=", "",$ret_string );
$ret_string = str_replace("+", "",$ret_string );
$ret_string = str_replace("%00", "",$ret_string );
$ret_string = str_replace(";", "",$ret_string );
$ret_string = str_replace(":", "",$ret_string );
$ret_string = str_replace("|", "",$ret_string );
$ret_string = str_replace("<", "",$ret_string );
$ret_string = str_replace(">", "",$ret_string );
$ret_string = str_replace("~", "",$ret_string );
$ret_string = str_replace("`", "",$ret_string );
$ret_string = str_replace("%20and%20", "",$ret_string );
$ret_string = stripslashes ($ret_string);
return $ret_string;
}
/*
Обработка глобального POST массива
защищает от XSS и SQL Injection
поддержка защиты для MSSQL серверов
*/
function check_sql_inject()
{
$badchars = array("--","truncate","tbl_","exec","call",";","'","*","/"," \ ","drop",
"select","update","delete","where", "-1", "-2", "-3","-4", "-5", "-6", "-7", "-8", "-9");
foreach($_POST as $value)
{
foreach($badchars as $bad)
{
if(strstr(strtolower($value),$bad)<>FALSE)
{
die('Использованы недопустимые символы, <a href="'.$_SERVER['PHP_SELF'].'">вернитесь назад</a>');
}
}
}
}
check_sql_inject();
db_mssql_check_xss ();
if (isset($_POST['login']))
{
$Link = MySQL_Connect($DBHost, $DBUser, $DBPassword) or die ("Can't connect to MySQL");
MySQL_Select_Db($DBName, $Link) or die ("Database ".$DBName." do not exists.");
$Login = $_POST['login'];
$Pass = $_POST['passwd'];
$Repass = $_POST['repasswd'];
$Email = $_POST['email'];
$Capch = $_POST['captcha'];
$Capch_img = $_SESSION['captcha_keystring'];
$Login = StrToLower(Trim($Login));
$Pass = StrToLower(Trim($Pass));
$Repass = StrToLower(Trim($Repass));
$Email = Trim($Email);
if (empty($Login) || empty($Pass) || empty($Repass) || empty($Email))
{
echo "Все поля отмеченные <font color=red>*</font> обязательны к заполнению.";
}
elseif (ereg("[^0-9a-zA-Z_-]", $Login, $Txt))
{
echo "Неправильный формат логина.";
}
elseif (ereg("[^0-9a-zA-Z_-]", $Pass, $Txt))
{
echo "Неправильный формат пароля.";
}
elseif (ereg("[^0-9a-zA-Z_-]", $Repass, $Txt))
{
echo "Неправильный формат повтора пароля.";
}
elseif (StrPos('\'', $Email))
{
echo "Неправильный формат Email.";
}
else
{
$Result = MySQL_Query("SELECT name FROM users WHERE name='$Login'") or ("Can't execute query.");
if (MySQL_Num_Rows($Result))
{
echo "Логин <b>".$Login."</b> уже используется.";
}
elseif ((StrLen($Login) < 4) or (StrLen($Login) > 10))
{
echo "Логин должен содержать больше 4 и не более 10 символов..";
}
elseif ((StrLen($Pass) < 4) or (StrLen($Pass) > 10))
{
echo "Пароль должен содержать больше 4 и не более 10 символов.";
}
elseif ((StrLen($Repass) < 4) or (StrLen($Repass) > 10))
{
echo "Повтор пароля должен содержать больше 4 и не более 10 символов.";
}
elseif ((StrLen($Email) < 4) or (StrLen($Email) > 25))
{
echo "Email должен содержать больше 4 и не более 25 символов.";
}
elseif ($Pass != $Repass)
{
echo "Пароли не совпадают.";
}
elseif ($Capch_img != $Capch)
{
echo "Неправильный код с картинки";
}
else
{
// $Salt = $Login.$Pass;
// $Salt = md5($Salt);
// $Salt = "0x".$Salt;
$Salt = "0x".md5($Login.$Pass);
MySQL_Query("call adduser('$Login', '$Salt', '0', '0', '0', '0', '$Email', '0', '0', '0', '0', '0', '0', '0', '', '', '$Salt')") or die ("Can't execute query.");
$mysqlresult=MySQL_Query("select * from `users` WHERE `name`='$Login'");
$User_ID=MySQL_result($mysqlresult,0,'ID');
MySQL_Query("call usecash('$User_ID',1,0,1,0,500000,1,@error)") or die ("usecash failed!");
echo "Аккаунт <b>".$Login.""."</b> успешно зарегестрирован.";
}
}
}
echo $Data;
?>