php 表单数据

WBOY
WBOYOriginal
2016-06-23 13:15:33805Durchsuche

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 并不处理 ' (单引号),而数据库中是一定要转义的



我现在有点乱,
对于表单保存进数据库前,需要对输入的数据进行什么处理,
从数据库读取现在到页面时,要对读取的数据进行什么处理

入库时转义特殊字符
出库后根据需要做相应处理

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn