Всё гениальное просто, не засирайте ваши коды горами функции типа $a = check($_GET['a']); $b = check($_POST['a']); и т.п..
// В примере с GET я всё распишу, дальше будет ясно я так думаю =)
// GET
foreach($_GET as $key => $value) {
if(is_numeric($value)) {
// фильтруем если цифра или число
// (int) - возводим в целое
// abs -не даем уйти в минус
$value = (int) abs($value);
} else {
// фильтруем если текст
// htmlspecialchars - преобразуем html символы в спецсимволы (защита от XSS)
$value = htmlspecialchars($value);
// удаляем ', ", % (защита от SQLinj)
$value = str_replace(array(''','"','%'),NULL,$value);
// удаляем точки (защита от PHPinj)
// ^ если нужно оставляем
$value = str_replace('.',NULL,$value);
}
$_GET[$key] = $value;
}
// POST
foreach($_POST as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = htmlspecialchars($value);
$value = str_replace(array(''','"','%'),NULL,$value);
$value = str_replace('.',NULL,$value);
}
$_POST[$key] = $value;
}
// COOKIE
foreach($_COOKIE as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = htmlspecialchars($value);
$value = str_replace(array(''','"','%'),NULL,$value);
}
$_COOKIE[$key] = $value;
}
// SESSONS
// для тех кто в танке, чтобы фильтр исправно работал нужно стартануть сессии (session_start();)
foreach($_SESSION as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = htmlspecialchars($value);
$value = str_replace(array(''','"','%'),NULL,$value);
}
$_SESSION[$key] = $value;
}