2

私はこのように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

4

4 に答える 4

10

...でも、つまり:

$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())、これらの関数は文字列を直接変更するのではなく、変更されたcopyを返します。したがって、戻り値を同じ (または別の) 変数に代入する必要があります!

于 2011-12-20T18:33:17.480 に答える
6
strip_tags($user); //Filter html characters out

これに置き換える必要があります:

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

strip_tags削除された値を返します

ドキュメントを参照してください:http://nl2.php.net/strip_tags

これはと同じですmysql_real_escape_string()

$user = mysql_real_escape_string($user); //Against SQL injection
于 2011-12-20T18:32:51.547 に答える
2

strip_tags不適切に使用しています:

string strip_tags(string $ str [、string $ 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
于 2011-12-20T18:32:55.447 に答える
1

すでに述べたように

$user = strip_tags($user);

使用する必要がありますが、私も入れます

mysql_real_escape_string($user);

strip_tags() の呼び出し後。

于 2011-12-20T18:35:04.363 に答える