Intereting Posts

strip_tags не работает

Я прав, чтобы отфильтровать html-символы так:

$user = $_POST["user"]; //Get username from <form> mysql_real_escape_string($user); //Against SQL injection strip_tags($user); //Filter html characters out 

Но почему-то это не фильтрует html-символы. Я не знаю, почему, может ли это mysql_real_escape_string ?

Related of "strip_tags не работает"

… Но, вы имеете в виду:

 $user = $_POST["user"]; // Get username from <form> $user = mysql_real_escape_string($user); // Against SQL injection $user = strip_tags($user); // Filter html characters out 

?

Как сказано в других ответах (ссылаясь на strip_tags() , но это одинаково для mysql_real_escape_string() ), эти функции не изменяют строки напрямую, а возвращают измененную копию . Таким образом, вы должны назначить возвращаемые значения одной и той же (или другой) переменной!

 strip_tags($user); //Filter html characters out 

следует заменить следующим:

 $user = strip_tags($user); //Filter html characters out 

strip_tags возвращает strip_tags значение

См. Doc: http://nl2.php.net/strip_tags

mysql_real_escape_string() же самое происходит с mysql_real_escape_string()

 $user = mysql_real_escape_string($user); //Against SQL injection 

Вы используете strip_tags неправильно:

string strip_tags (строка $ str [, строка $ allowable_tags])

Модификация кода для присвоения ему возвращаемого значения должна исправить его

 $user = strip_tags($user); //Filter html characters out 

РЕДАКТИРОВАТЬ

Просто для полноты, спасибо за lorenzo-s за указание на это, вам также нужно сделать то же самое с mysql_real_escape_string

 $user = mysql_real_escape_string($user); // Against SQL injection 

Как уже говорилось

 $user = strip_tags($user); 

следует использовать, но я также

 mysql_real_escape_string($user); 

ПОСЛЕ вызова strip_tags ();