热搜:NVER node 开发 php

php 表单数据

2024-07-24 12:20:01
php 表单数据

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



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

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