【发布时间】:2012-11-06 13:33:08
【问题描述】:
我在视图中生成这个:
<form method="post">
<input type="hidden"
name="test"
value="<?=htmlentities('<>"&ščé', ENT_QUOTES, 'UTF-8')?>">
<input type="submit>
</form>
现在,在处理来自表单的数据时我应该这样做吗?
$decodedTest = html_entity_decode($_POST['test'], ENT_QUOTES, 'UTF-8');
我觉得应该没问题:
$decodedTest = $_POST['test'];
但是我没有找到这个的参考。
编辑:我打印了test 的发布值,并且我看到该值未编码。我不知道我是否可以依靠这种行为以及为什么。我问的是操作理论。如果我查看原始发布请求,我可以看到发布数据是 urlencoded(我猜这是与 htmlentities 不同的编码类型)。这是否意味着客户端必须在发送请求之前执行一些重新编码。 (客户端)浏览器在发送之前是否将输入值以编码形式或解码形式存储在内存中? (我已经知道 php 会自动解码请求中的 urlencoded 数据,所以这部分对我来说相当清楚)。
【问题讨论】:
-
阅读“跨站点脚本”。
标签: php post html-entities