Фильтр get и post не понимают кирилицу помощь

  • Автор темы vogman
  • Дата начала
vogman
http://fight-of-robots.ru
Участник
Сообщения
153
Реакции
14
ICQ
663721547 663721547
Skype
всем привет , своих сил в решении проблемы не хватает.
Поставил себе в индекс вот этот фильтр
error_reporting(0); // вывод ошибок


if($_GET['menu']!='бла бла бла' && 'support'){
function limpiarez($mensaje){

$mensaje = htmlspecialchars(trim($mensaje), ENT_QUOTES, 'windows-1251');
$mensaje = str_replace("'","′",$mensaje);
$mensaje = str_replace(";","¦",$mensaje);
$mensaje = str_replace("$"," USD ",$mensaje);
$mensaje = str_replace("<","&lang;",$mensaje);
$mensaje = str_replace(">","&rang;",$mensaje);
$mensaje = str_replace('"',"&rdquo;",$mensaje);
$mensaje = str_replace("%27"," ",$mensaje);
$mensaje = str_replace("0x29"," ",$mensaje);
$mensaje = str_replace("&amp amp ","&",$mensaje);
return $mensaje;
}

foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=limpiarez($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=limpiarez($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=limpiarez($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=limpiarez($_GET[$i]);}
foreach($_COOKIE as $i => $value){$_COOKIE[$i]=limpiarez($_COOKIE[$i]);}


foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=stripslashes($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=stripslashes($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=stripslashes($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=stripslashes($_GET[$i]);}
foreach($_COOKIE as $i => $value){$_COOKIE[$i]=stripslashes($_COOKIE[$i]);}

################## Фильтрация всех POST и GET #######################################
function filter_sf(&$sf_array)
{
while (list ($X,$D) = each ($sf_array)):

$sf_array[$X] = limpiarez(mysql_escape_string(strip_tags(htmlspecialchars($D))));
endwhile;
}
filter_sf($_GET);
filter_sf($_POST);
#####################################################################################

function anti_sql()
{
$check = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ) );
$check = str_replace( "", "/", $check );

$check = mysql_real_escape_string($str);
$check = trim($str);
$check = array("AND","UNION","SELECT","WHERE","INSERT","UPDATE","DELETE","OUTFILE","FROM","OR","SHUTDOWN","CHANGE","MODIFY","RENAME","RELOAD","ALTER","GRANT","DROP","CONCAT","cmd","exec");
$check = str_replace($check,"",$str);


if( $check )
{
if((strpos($check, '<')!==false) || (strpos($check, '>')!==false) || (strpos($check, '"')!==false) || (strpos($check,"'")!==false) || (strpos($check, '*')!==false) || (strpos($check, '(')!==false) || (strpos($check, ')')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) )
{
$prover = true;
}

if((strpos($check, 'src')!==false) || (strpos($check, 'img')!==false) || (strpos($check, 'OR')!==false) || (strpos($check, 'Image')!==false) || (strpos($check, 'script')!==false) || (strpos($check, 'javascript')!==false) || (strpos($check, 'language')!==false) || (strpos($check, 'document')!==false) || (strpos($check, 'cookie')!==false) || (strpos($check, 'gif')!==false) || (strpos($check, 'png')!==false) || (strpos($check, 'jpg')!==false) || (strpos($check, 'js')!==false) )
{
$prover = true;
}

}

if (isset($prover))
{
die( "Попытка атаки на сайт или введены запрещённые символы!" );
return false;
exit;
}
}
anti_sql();

}
так вот теперь у меня блочится кирилица и руский язык не передается в базу остаются пустые поля
в файле регистрации есть пункт ввода имени но если писать его на русском он не заносится в базу из-за фильтра вот файл реги
<?PHP
$_OPTIMIZATION["title"] = "Регистрация";
$_OPTIMIZATION["description"] = "Регистрация пользователя в системе";
$_OPTIMIZATION["keywords"] = "Регистрация нового участника в системе";

if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }
?>
<div class="acc-title">Регистрация</div>

<div class="silver-bk">

<?PHP
$tfstats = time() - 60*60*48;
$db->Query("SELECT
(SELECT COUNT(*) FROM db_users_a) all_users,
(SELECT SUM(insert_sum) FROM db_users_b) all_insert,
(SELECT SUM(payment_sum) FROM db_users_b) all_payment,
(SELECT COUNT(*) FROM db_users_a WHERE date_reg > '$tfstats') new_users");
$stats_data = $db->FetchArray();

?>

<?PHP

$db->Query("SELECT
COUNT(id) all_users,
SUM(money_b) money_b,
SUM(money_p) money_p,

SUM(a_t) a_t,
SUM(b_t) b_t,
SUM(c_t) c_t,
SUM(d_t) d_t,
SUM(e_t) e_t,
SUM(f_t) f_t,

SUM(a_b) a_b,
SUM(b_b) b_b,
SUM(c_b) c_b,
SUM(d_b) d_b,
SUM(e_b) e_b,
SUM(f_b) f_b,

SUM(all_time_a) all_time_a,
SUM(all_time_b) all_time_b,
SUM(all_time_c) all_time_c,
SUM(all_time_d) all_time_d,
SUM(all_time_e) all_time_e,
SUM(all_time_f) all_time_f,

SUM(payment_sum) payment_sum,
SUM(insert_sum) insert_sum


FROM db_users_b");
$data_stats = $db->FetchArray();

?>



<?PHP

# Регистрация

if(isset($_POST["login"])){

$login = $func->IsLogin($_POST["login"]);

if(isset($_POST["name"])){

$name = $db->RealEscape(htmlspecialchars($_POST['name'], ENT_QUOTES, 'windows-1251'));

if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){

$pass = $func->IsPassword($_POST["pass"]);
$pol = intval($_POST['pol']);
$rules = isset($_POST["rules"]) ? true : false;
$time = time();
$ip = $func->UserIP;
$ipregs = $db->Query("SELECT * FROM `db_users_a` WHERE INET_NTOA(db_users_a.ip) = '$ip' ");
$ipregs = $db->NumRows();
$email = $func->IsMail($_POST["email"]);
$referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
$referer_name = "";

if($referer_id != 1){
$db->Query("SELECT user FROM db_users_a WHERE id = '$referer_id' LIMIT 1");
if($db->NumRows() > 0){$referer_name = $db->FetchRow();}
else{ $referer_id = 1; $referer_name = "Admin"; }
}else{ $referer_id = 1; $referer_name = "Admin"; }

if($rules){

if($ipregs == 0) {

if($email !== false){

if($login !== false){

if($name !== false){

if($pass !== false){

if($pass == $_POST["repass"]){

$db->Query("SELECT COUNT(*) FROM db_users_a WHERE user = '$login'");
if($db->FetchRow() == 0){


# шифруем пароли
//$pass=sha1($pass);

# Регаем пользователя
$db->Query("INSERT INTO db_users_a (user, pol, name, email, pass, referer, referer_id, date_reg, ip)
VALUES ('$login','$pol','$name','{$email}','$pass','$referer_name','$referer_id','$time',INET_ATON('$ip'))");

$lid = $db->LastInsert();

$db->Query("INSERT INTO db_users_b (id, user, a_t, last_sbor) VALUES ('$lid','$login','1', '".time()."')");

# Вносим покупку
$da = time();
$dd = $da + 60*60*24*30;
$need_money = 4500;
$db->Query("INSERT INTO db_tank (user, user_id, tree_name, amount, a_t, date_add, date_del) VALUES ('$login', '$lid', 'Робот: мегатрон', '$need_money', '1', '$da','$dd')");


# Вставляем статистику
$db->Query("UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'");

# Отправляем на почту
$sender = new isender;
$sender -> SendAfterReg($login, $email, $pass);







echo "<center><b><font color = 'green'>Вы успешно зарегистрировались. Используйте форму для входа в аккаунт</font></b></center><BR />";
?>
</div>



<?PHP

return;

}else echo "<center><b><font color = 'red'>Указанный логин уже используется</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Пароль и повтор пароля не совпадают</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Пароль заполнен неверно</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Имя заполненo неверно</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Логин заполнен неверно</font></b></center><BR />";

}else echo "<center><font color = 'red'><b>Email имеет неверный формат</b></font></center>";

}else echo "<center><font color = 'red'><b>Иметь мультиаккаунты строго запрещено</b></font></center>";

}else echo "<center><b><font color = 'red'>Вы не подтвердили правила</font></b></center><BR />";

}else echo "<center><font color = 'red'><b>Символы с картинки введены неверно</b></font></center>";

}
}

?>

<style>

.warn2 {
background: #00A8FF;
background: #60a3d8 linear-gradient(#89bbe2, #60a3d8 50%, #378bce);
border: 3px solid #DDDEDC;
border-right: 3px solid #48C065;
border-left: 3px solid #48C065;
transition: 3s;
-webkit-transition-duration: 1s;
-o-transition-duration: 1s;
-moz-transition-duration: 1s;
transition-duration: 1s;
}

.warn2:hover {
border: 3px solid #DDDEDC;
border-right: 3px solid #48C065;
border-left: 3px solid #48C065;
background: #229E28 ;
}

</style>

<br />

<form action="" method="post" id="signupForm">
<input type="hidden" name="subid" id="subid">
<input type="hidden" name="partner_key" id="partner_key">
<input type="hidden" name="group" id="group">
<input type="hidden" name="source" id="source">
<input type="hidden" name="reg_group" value="signup">
<input type="text" placeholder="Придумайте логин" name="login" style="padding: 7px 34px;" type="text" size="25" maxlength="10" value="<?=(isset($_POST["login"])) ? $_POST["login"] : false; ?>"/><br />

<input type="text" placeholder="Ваше имя" name="name" style="padding: 7px 34px;" type="text" size="25" maxlength="10" value="<?=(isset($_POST["name"])) ? $_POST["name"] : false; ?>"/><br />

<select name="pol" style=" width: 276;height: 33; text-align: center;">
<option value="1"><b align="center"> Ваш пол: Мужской </b>
<option value="2"><b align="center"> Ваш пол: Женский </b>
</select><br />





<input type="password" placeholder="Введите пароль" style="padding: 7px 34px;" name="pass" size="25"/><br />
<input type="password" placeholder="Повторите пароль" style="padding: 7px 34px;" name="repass" size="25"/><br />
<input type="text"placeholder="Введите ваш e-mail" style="padding: 7px 34px;" name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? $_POST["email"] : false; ?>"/><br />
<img style="width: 108px; height: 60px;" src="/captcha.php?rnd=<?=rand(1,10000); ?>"/><br />
<input type="text" class="btnreg" placeholder="Код с картинки" style="width: 150px;" name="captcha"/><br />

<label class="checkbox terms">
<input name="rules" value="check" checked="checked" type="checkbox">
Я&nbsp;принимаю&nbsp;<a href="https://servahoc.ru/redirect.php?url=/rules" target="_blank" class="service-page-link">правила&nbsp;использования</a>.
</label><br />

<hr />

<div class="controls actions">
<button type="submit" class="btn btn-primary warn2" id="btnContinue">Регистрация</button>
</div>

</form>



</div>

Видимо фильтр не распознает кирилицу и не передает русский язык , надеюсь на вашу помощь
 
Последнее редактирование:
Сверху