Что если ваша переменная листинга является массивом?
Вы должны рекурсивно очистить эту переменную.
Edit:
На самом деле, с помощью этой техники вы можете избежать SQL-инъекций, но не можете избежать XSS.
Чтобы очистить «ненадежную» строку, я обычно комбинирую strip_tags
и html_entity_decode
.
Таким образом, я избегаю внедрения кода, даже если символы кодируются Ł
.
$cleaned_string = strip_tags( html_entity_decode( $var, ENT_QUOTES, 'UTF-8' ) );
Затем вы должны построить рекурсивную функцию, которая вызывает предыдущие функции и проходит по многомерным массивам.
В конце концов, когда вы хотите использовать переменную в операторе SQL, вы можете использовать функцию экранирования, специфичную для СУБД (или PDO).
$var_used_with_mysql = mysql_real_escape_string( $cleaned_string );