Делимся кодом, которым проверяем входящие данные

Печать RSS
86

Автор
Пишу, строю и воображаю
0
В общем, на своём сайте (на входящие данные с форм) жестко всё фильтровал так:
$string=preg_replace('/[^ ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮa-zA-Z0-9_-]/i',null,$string);

Потом пользователи начали давать жалобы, мол нельзя добавлять знаки (начиная от точки, заканчивая скобками и т.п.).

Я не стал изобретать велосипед дважды... Вбил в поисковик запрос, и в итоге наткнулся на такой код:
function check($string){
	$string=str_replace("\\n","",$string);
	$string=str_replace("\n","",$string);
	$string=trim(" $string ");
	$string=ereg_replace(" +"," ",$string);
	$string=str_replace("$","$$",$string);
	$string=str_replace("","",$string);
	$string=str_replace("","",$string);
	$string=str_replace("","",$string);
	$string=str_replace("","",$string);
	$string=str_replace("","",$string);
	$string=str_replace("","",$string);
	$string=HtmlSpecialChars($string);
	$string=stripslashes($string);
	$string=str_replace("\"",""",$string);
	$string=str_replace("|","¦",$string);
	$string=str_replace("'","‘",$string);
	$string=str_replace("\\","",$string);
	$string=addslashes($string);
	return $string;
}

Мне стало очень страшно от вышеуказанного кода :-) И он меня еще больше ЗАПУТАЛ... Так всё в коде намудрено... Необходима ли ПРЯМ такая проверка?

Дайте готовый код с функциями которые необходимо использовать при проверке данных?

Данные например когда человек заполняет поле "О себе"... Здесь же максимальное количество разных символов используется.. Чтобы фильтр это проверил, ну главное чтобы sql инъекциям фак и что там еще? шелл?)))

С числами по легче... INTVAL и ффсё. А с текстом - по сложнее. Помогите, ребята.
А

Оранжевые штаны
0
htmlspecialchars();
Автор
Пишу, строю и воображаю
0
2, и всё? больше ничего не надо?))) эта функция "залечит" все лишние символы которые могут грозить безопасности сайта?
П

Пацак
0
Если используются prepared statements, то, действительно, больше ничего не надо. Иначе нужна еще addslashes для экранирования.
Автор
Пишу, строю и воображаю
0
в интеренете нашел интересную штуку как filter_var .... 4, не юзал его?
П

Пацак
0
5. Moto-Moto, да. Можно и его использовать. filter_var($str, FILTER_SANITIZE_SPECIAL_CHARS);
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск