Mysql改变了我的html标签,使它们无用

时间:2011-10-30 03:11:00

标签: php mysql text reformatting

我将数据导入数据库到文本字段。但是,当我尝试输入

<strong> Hi There </strong>

我在表格中找到它(使用php myadmin)

"&lt;strong&gt; Hi There &lt;/strong&gt;" 

将其显示在我的正面网页上

<strong> Hi There </strong>

显然不是理想的结果。

这里有什么想法吗?我正在使用常规文本表单。

3 个答案:

答案 0 :(得分:1)

当您输入数据时,它可能正在被清除 - 可能是htmlspecialchars()htmlentities()

要解码代码,请使用html_entity_decode()

http://php.net/manual/en/function.html-entity-decode.php

答案 1 :(得分:1)

呀。这里发生的是简单的编码,因此存储的表格是安全的。在网页上显示之前,将其传递给PHP内置的html_entity_decode()。

请注意,如果没有发生这种情况,那么有人可以很容易地将自己的HTML输入到不应该包含HTML(如用户名)的字段中,然后他们就可以修改您的网站。

答案 2 :(得分:0)

当处理数据库中保存的或显示在您的内容中的不同用户输入时,您应该始终了解xss攻击。更安全然后抱歉...

<强>用户名: 检查最低和最低最大长度,不超出ASCII范围&amp;严格来说没有html或像<>;'"%那样的特殊字符,并且从开头和开头修剪空格结束。如果输出到表单,请始终使用htmlspecialchars()

<强>密码: 检查最低和最低最大长度,通过至少1个国会大厦和一个阿尔法字符使安全。保存到数据库时始终加密&amp;不要使用md5。如果不使用htmlspecialchars()属性,则输出到表单时始终使用type="password"

<强>电子邮件: 检查它是否是有效的电子邮件地址。

主要评论,帖子提交区域: 剥离所有javascript,html和/或允许用户插入BBcode,如果需要图像,链接,格式化,然后在显示时将BBcode转换为有效的HTML。