[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проверка данных от пользователя
sg.com
проверять:
- тип данных, строка это или массив, целые числа или с точкой и т.д.;
- допустимые символы: ctype-функции или для более сложных проверок - регулярные выражения;
- проверка формата: filter_var или регулярные выражения;
- проверка наличие данных или ограничений, например принимать только строки от 10 до 20 символов или числа от 10 до 100;
- логические проверки и проверки что бы не было неоднозначности, типа +0, 0 и -0 и т.д.

пример того что валидатор может не сработать:
 // Пример как проверять
function checkIntRange($int, $min, $max) {
if (is_string($int) && !ctype_digit($int)) {
return false; // содержит нецифровые символы
}
if (!is_int((int) $int)) {
return false; // другое не целое значение или больше PHP_MAX_INT
}
return ($int >= $min && $int <= $max);
}

// а вот так никогда не проверяйте
function checkIntRangeWrong($int, $min, $max) {
return ($int >= $min && $int <= $max);
}

assert(checkIntRange("6' OR 1=1", 5, 10)); //вернёт NULL/Выдаст предупреждение
assert(checkIntRangeWrong("6' OR 1=1", 5, 10)); //ошибочно вернёт TRUE

assert(0 == '0ABC'); //возвращает TRUE
assert(0 == 'ABC'); //возвращает TRUE (даже без цифры в начале!)
assert(0 === '0ABC'); //возвращает NULL/Выдаёт предупреждение о невозможности проверить утверждение


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.