В общем, на своём сайте (на входящие данные с форм) жестко всё фильтровал так:
$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 и ффсё. А с текстом - по сложнее. Помогите, ребята.