我打算像这样过滤掉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能做到吗?
发布于 2011-12-21 02:33:17
...But,你是说:
$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()也是一样)中所说的,这些函数不会直接更改字符串,而是返回修改后的副本。所以你必须将返回值赋给同一个(或另一个)变量!
发布于 2011-12-21 02:32:52
strip_tags($user); //Filter html characters out应替换为以下内容:
$user = strip_tags($user); //Filter html characters outstrip_tags返回剥离后的值
请参阅文档:http://nl2.php.net/strip_tags
这与mysql_real_escape_string()是一样的
$user = mysql_real_escape_string($user); //Against SQL injection发布于 2011-12-21 02:32:55
您错误地使用了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 injectionhttps://stackoverflow.com/questions/8580191
复制相似问题