Php 如何中和包含html标记的输入?

Php 如何中和包含html标记的输入?,php,mysql,Php,Mysql,我的意思是,如果有人输入gvfdg,则不应显示链接。我尝试了htmlspecialchars(),但没有效果。在PHP和MySQL中 mysql_real_escape_string(htmlspecialchars($mesaj)); $sql="INSERT INTO mesaj (Person1, Person2, mesaj) VALUES ('$currentuser', '$id','$mesaj')"; if (!mysql_query($sql,$link)) { die('

我的意思是,如果有人输入
gvfdg
,则不应显示链接。我尝试了
htmlspecialchars()
,但没有效果。在PHP和MySQL中

mysql_real_escape_string(htmlspecialchars($mesaj));

$sql="INSERT INTO mesaj (Person1, Person2, mesaj)
VALUES ('$currentuser', '$id','$mesaj')";

if (!mysql_query($sql,$link))
{
die('Error: ' . mysql_error());
}
mysql_close($link);

也许你在寻找。但是,htmlspecialchars()应该可以工作,即将“”转换为html实体,这样浏览器就不会解析这些实体。

此调用

mysql_real_escape_string(htmlspecialchars($mesaj));
不起作用:您需要指定返回值

$mesaj = mysql_real_escape_string(htmlspecialchars($mesaj));
但是,最好以原始形式将数据存储在数据库中,并在即将输出数据时执行
htmlspecialchars()


我假设您正在对
$currentuser
$id
执行
mysql\u real\u escape\u string()

htmlspecialchars()将有所帮助。显示不起作用的代码为了澄清,每次将文本字符串放入HTML页面时,都应该在输出阶段使用
htmlspecialchars()
。在数据库中存储HTML编码的数据是没有意义的。哦,我想。。。好啊非常感谢你!不要担心html标记,担心SQL注入。htmlspecialchars()没有任何效果:/$currentuser来自会话,它是一个id,来自作为整数增量创建的数据库$id=(int)$\u GET['id'];如果($id<1)退出();所以我觉得他们没事,我想是的。你的意思是说mysql\u real\u escape\u字符串是密封的?太棒了@约翰:不,
(int)$\u GET[“id”];如果($id<1)退出()是密封的,无需进一步escaping@Pekka,不担心“id”,非常非常担心$mesaj。这看起来很不安全。@Pekka,
mysql\u real\u escape\u string()
只做一些事情,看起来也。。。。。脆弱的