php - 如何正确转义 HTML 表单上的密码字段?

标签 php

与文本输入相比,密码输入字段通常接受范围广泛的字符。在 HTML 表单上转义输入的正常方法涉及对输入内容使用 htmlspecialchars($_POST['content'])

如果在密码更新过程验证失败的情况下,我需要新密码重新填充到 HTML 表单上怎么办?像 '> yeah 这样的东西会导致表单出现故障,使用 htmlspecialchars 会产生一个完全不同的密码。

有什么建议吗?

如图所示的html部分:

<INPUT type=password name=password1 value=''&gt;&lt;script&gt;try' size=15 maxlength=15>

对应的php代码:

function h($str) {echo htmlspecialchars($str);}
echo "<INPUT type=password name=password1 value='", h(@$_POST['password1']), "' size=15 maxlength=15>";

表单输入字段中显示为空白。

更新

问题出在我的 htmlspecialchars 上,默认情况下它不会转义单引号。现在添加 ENT_QUOTES 参数允许转义单引号并解决我的问题。 deceze 和 CodeCaster 是正确的,htmlspecialchars 不会更改密码。谢谢大家。

最佳答案

不,htmlspecialchars 不会生成完全不同的密码。它会产生 value="> yeah",当被浏览器解析时,它被读取为 > yeah。密码字段在处理特殊或非特殊字符方面没有任何特殊之处。

关于php - 如何正确转义 HTML 表单上的密码字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7792038/

相关文章:

php - PHP/MYSQL编辑配置文件功能-错误的查询语法?

php - 在没有浏览器超时的情况下在 PHP 中处理大量数据

php - 在网站上使用分页搜索功能

php - Jquery,将innerHTML添加到DIV并通过该innerHTML的ID访问元素?

php - 从一个选择选项值中获取多个值。 PHP HTML

php - MySQL 相关排序

php - 无法使用 Laravel Eloquent 的现有表

javascript - 使用 JavaScript 使用来自 PHP 数组的选项填充动态创建的下拉列表

javascript - 两个按钮提交表单问题

PHP/MySQL 按比例更新字段