2

我正在开发一个有喊话框应用程序的网站,

我想要做的是如何接受用户或客人是否正在插入 php 标签作为他/她的消息或喊叫就像你可以在图像上看到的那样..

我正在使用 mysql_real_escape_string 作为来宾名称和消息..

我希望 php 将其视为文本并将其显示为文本而不是标签或代码..

当我输入这样的呼喊时,没有消息出现,就像(来宾:下午 3:34)没有显示消息的呼喊一样,当我检查我的数据库以查看是否插入了呼喊.. 消息列上没有插入数据我的 tb_shoutbox ..

我在 facebook 聊天中尝试过,我输入了一个 php 标签和 html 标签,它接受了那种消息.. 怎么做..

请帮忙..

喊话箱

4

3 回答 3

2

您需要将某些字符(例如“<”)转换为 HTML 实体。htmlentities函数可以这样使用:

echo htmlentities($guest_comment, ENT_QUOTES, 'utf-8');

于 2012-09-07T15:55:47.117 回答
1

建立在韦恩惠蒂完全正确的答案和你对他的答案的评论的回答:

mysql_real_escape_string用于使用 MySQL 查询将变量的数据插入 MySQL 数据库,而不用变量的内容破坏查询。

这可以防止人们在您的喊话箱上进行SQL 注入

另一方面,当您想阻止人们破坏您的 PHP 脚本时使用htmlentities (这可能非常令人不快)。它将您提供的字符串编码为纯 html。就好像它告诉浏览器这个字符串,不管它是什么,都应该显示给用户。没有进行代码解析。

因此,回答您的问题:在您的代码中的某处,您有一条 PHP 行来回显来自数据库/文件的消息。您需要修改该行,使其首先使用 htmlentities 对消息进行编码,然后将其显示给用户

于 2012-09-07T16:30:04.540 回答
0

您应该使用HTMLEntities以将标签显示为纯文本。

于 2012-09-07T15:57:12.180 回答