input data should be validated using functions such as strip_tags and utf8_decode. Dynamics content should be HTML encoded using htmlspecialchars.
用户输入的数据用strip_tags和utf8_decode处理,为什么读取数据还要用htmlspecialchars处理?
前面已经用strip_tags把标签去掉了
回复讨论(解决方案)
if($text != strip_tags($text)) {
//含有 HTML 内容,怎么处理由你决定
}
utf8_decode 对中文无效,只会越搞越乱
Dynamics content should be HTML encoded using htmlspecialchars
动态内容可以用 htmlspecialchars 做 HTML 编码
if($text != strip_tags($text)) {
//含有 HTML 内容,怎么处理由你决定
}
utf8_decode 对中文无效,只会越搞越乱
Dynamics content should be HTML encoded using htmlspecialchars
动态内容可以用 htmlspecialchars 做 HTML 编码
utf8_encode() 函数把 ISO-8859-1 字符串编码为 UTF-8。
utf8_encode() 函数有什么用? 在什么情况下用到?
ISO-8859-1 是单字节字符集
其别名为 latin1,这个 latin1 你应该是知道的(MySQL的默认字符集)
latin1 又称欧洲标准字符集
if($text != strip_tags($text)) {
//含有 HTML 内容,怎么处理由你决定
}
utf8_decode 对中文无效,只会越搞越乱
Dynamics content should be HTML encoded using htmlspecialchars
动态内容可以用 htmlspecialchars 做 HTML 编码
那对于输入的数据,只用htmlspecialchars就可以了?
保存到数据库前: $input_data = htmlspecialchars($input_data);
从数据库读取(不用处理) $input_data
为什么呢?那么绝对?!
如果传入的是在线编辑器的数据,你也 htmlspecialchars ?
况且 htmlspecialchars 并不处理 ‘ (单引号),而数据库中是一定要转义的
为什么呢?那么绝对?!
如果传入的是在线编辑器的数据,你也 htmlspecialchars ?
况且 htmlspecialchars 并不处理 ‘ (单引号),而数据库中是一定要转义的
我现在有点乱,
对于表单保存进数据库前,需要对输入的数据进行什么处理,
从数据库读取现在到页面时,要对读取的数据进行什么处理
入库时转义特殊字符
出库后根据需要做相应处理