Фильтрация переменных и проблема с кодировкой

Печать RSS
188

Автор
Голубые штаны
0
Вот небольшой кусок кода...
<?php
echo '<br /><form method="post" action="reg.php" >';
echo 'Логин: <br /><input name="login" maxlength="32" /><br />';
echo 'Пароль: <br /><input type=password name="passw" maxlenght="32" /><br />';
echo '<br /><input value="Регистрация" type="submit" /></form>';
$login = $_POST['login'];
$passw = $_POST['passw'];
$sql = 'INSERT INTO `users` (`login`, `passw`) VALUES ("'.$login.'", MD5("'.$passw.'"))';
$res = mysql_query($sql);
?>
Вот как мне тут отфильтровать переменные? чтоб никаких кодов и прочей ерунды не пускало а только латинские и кирилические буквы и некоторые знаки...
И еще одна проблема! При вводе кирилицы в таблице всякие каракули... как кодировку при вводе получить UTF-8?
Изменил: Андрей (10.01.2010 / 14:48)
Автор
Голубые штаны
0
ааа... и еще профильтровать на длину) а то гдето читал что ограничения в инпутах както обходица... правдо мало верица... но всёже для общего знания пригодица)

Ктулху
0
Ограничения в импутах легко обходятся...
<?php
if(strlen($login)>15 || strlen($passw)>15) {
	echo "Пароль или логин больше 15 символов";
} else {
	if(!eregi('^[a-z0-9\-]+$',$login) || !eregi('^[a-z0-9\-]+$',$passw)) {
		echo "Пароль или логин содержат недопустимые символы";
	} else {
		$sql = 'INSERT INTO `users` (`login`, `passw`) VALUES ("'.$login.'", MD5("'.$passw.'"))'; 
		$res = mysql_query($sql);
	}
}
?>
Изменил: ктулху (10.01.2010 / 15:12)
И

Оранжевые штаны
0
$names = substr($HTTP_POST_VARS["names"],0,32);
это для фильтрации длины..Думаю разберешьсяч=) Длина редакчеться заменой цифры 0.32 Это (если я не путаю) значит что макс 32 символа
И

Оранжевые штаны
0
3. ShiftBHT, Ну можно и так=))
Автор
Голубые штаны
0
3. ShiftBHT, вооо) точто надо) спс

Ктулху
0
<?php
mysql_query("SET character_set_client='utf8'");
mysql_query("SET character_set_connection='cp1251'");
mysql_query("SET character_set_results='utf8'");
?>
Вот такую штуку попробуй после конекта к БД прописать
Автор
Голубые штаны
0
7. ShiftBHT, вооо) отлично) пашет теперь всё) спасибо огромное) с меня плюс) через пару часов)
тема офф
Автор
Голубые штаны
0
а нет не офф)
еще при включоном:
<?php
$act = $_GET['act'];
?>
дыра получается...
чтото вроде етим латают:
<?php
$act=htmlspecialchars(stripslashes(trim($act)));
$act=eregi_replace('"',"",$act);
$act=eregi_replace("[,{}+'$%`^&*%;]","",$act);
?>
но не уверен, потому что непонимаю покачто что делает такой код sad подскажите мошт где прочитать или объясните малясь)
Изменил: Андрей (10.01.2010 / 17:16)
Автор
Голубые штаны
0
вернее не понимаю ету строчку:
<?php
$act=htmlspecialchars(stripslashes(trim($act)));
?>
Изменил: Андрей (10.01.2010 / 17:17)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск