PHP — Валидация данных
Допустим, что мы подключились к базе:
$connlogin="user"; $connpass="pass"; $connserver="IPADDR:3306"; $connbase="base"; $conn = mysqli_connect($connserver,$connlogin,$connpass ,$connbase ); if (!$conn) { die("Ошибка соединения: " . mysqli_error()); }
Теперь мы хотим взаимодействовать с переменной, которую получили из POST. Если использовать напрямую — есть вероятность вставки спец символов или кавычек, что критично для безопасности SQL. Используем mysqli_real_escape_string — она экранирует специальные символы в строке для использования в SQL-выражении.
$var1 = mysqli_real_escape_string($conn, $_POST['var1']);
Теперь валидация типов переменных. В ID записи БД используются цифры. Вероятность встретить текст — минимальна. Проверим, что наша переменная состоит только из целого числа.
is_int($_POST['id']);
Проверка bool:
is_bool($a) === true
Является ли переменная числом с плавающей точкой:
is_float($a)
Является ли переменная строкой:
is_string($text)
Является ли переменная массивом:
is_array($array)
Проверяет, содержит ли только текст и цифры. ctype_alnum($testcase)
Состоит только из букв:
ctype_alpha($testcase)
Состоит только из int:
ctype_digit($_POST['id'])