- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
<?php
function import_var($name,$source,$type,$maxlen=0) {
$retarr=array();
if(is_array($name)) { // если нужно обработать массив с именами
foreach($name as $v) {
$retarr[$v] = import_var($v,$source,$type,$maxlen);
// рекурсивно запускаем себя же
}
if(sizeof($retarr)>0) return $retarr; // возвращаем массив
}
// если нужно обработать одну переменную
switch($source) {
case 'G':
if (isset($_GET[$name])) {
$var=$_GET[$name]; // из GET
}
break;
case 'P':
if (isset($_POST[$name])) {
$var=$_POST[$name]; // из POST
}
break;
case 'C':
if (isset($_COOKIE[$name])) {
$var=$_COOKIE[$name]; // из Cookie
}
break;
}
if(!isset($var)) return false; // если переменная существует
if(is_array($var)) return false; // и если это не массив...
if(get_magic_quotes_gpc()) $var = stripslashes($var);
// убираем лишние бэкслэши
if(empty($var)) return false; // если переменная пуста
if ($maxlen>0) $var = substr($var,0,$maxlen); //обрубаем лишнее
switch($type) { // теперь обрабатываем в соответствии с типом
case 'INT' : // число integer
return is_integer($var) ? $var : intval($var);
break;
case 'NUM' : // число integer или float
return is_numeric($var) ? $var : false;
break;
case 'HTML' : // текст, в котором могут содержаться тэги
return trim(htmlspecialchars($var));
break;
case 'SQL' : // строка, которая попадет в SQL-запрос
return mysql_real_escape_string(htmlspecialchars($var));
break;
case 'MAIL' : // email-адрес
return preg_match('/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{2,4}$/',$var) ? $var : false;
break;
case 'ALPHA' : // только буквенные символы
return preg_match("/^[а-яА-ЯёЁa-zA-Z]+$/",$var) ? $var : false;
break;
case 'ALPHANUM' : // числовые и буквенные символы
return preg_match("/^[а-яА-ЯёЁa-zA-Z0-9]+$/",$var) ? $var : false;
break;
case 'MD5' : // md5-хэш
return preg_match("/^[a-fA-F0-9]{32}+$/",$var) ? $var : false;
break;
case 'SHA1' : // sha1-хэш
return preg_match("/^[a-fA-F0-9]{40}+$/",$var) ? $var : false;
break;
case 'BOOL': // булева величина
return ($var=="1" || $var=="true" || $var=="on") ? true : false;
break;
}
}
?>
http://raz0r.name/releases/funkciya-dlya-obrabotki-vxodyashhix-dannyx/