如何在 PHP 中正确转义 HTML 表单输入默认值?
给定以下两个 HTML/PHP 片段:
<input type="text" name="firstname" value="<?php echo $_POST['firstname']; ?>" />
以及
<textarea name="content"><?php echo $_POST['content']; ?></textarea>
我需要对回显的 $_POST
变量使用什么字符编码?我可以使用任何内置 PHP 函数吗?
请假设 $_POST
值尚未编码。没有神奇的引言——什么也没有。
Given the following two HTML/PHP snippets:
<input type="text" name="firstname" value="<?php echo $_POST['firstname']; ?>" />
and
<textarea name="content"><?php echo $_POST['content']; ?></textarea>
what character encoding do I need to use for the echoed $_POST
variables? Can I use any built-in PHP functions?
Please assume that the $_POST
values have not been encoded at all yet. No magic quotes - no nothing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
htmlspecialchars($_POST['firstname'])
和htmlspecialchars($_POST['content'])
。在向用户显示字符串之前,始终使用
htmlspecialchars()
转义字符串。Use
htmlspecialchars($_POST['firstname'])
andhtmlspecialchars($_POST['content'])
.Always escape strings with
htmlspecialchars()
before showing them to the user.htmlspecialchars 在这两种情况下都适用。查看不同的标志选项,以避免引号在
input
情况下出现问题。htmlspecialchars would work in both cases. Have a look at the different flag options to avoid quotation marks being a problem in the
input
case.鉴于它有点长,我会把它放在一个函数中,
它有ENT_QUOTES来确保对单引号和双引号进行编码,但它也会对特殊字符进行编码(就像José中的那样) ) 而不是插入空字符串。
然后你可以这样做:
和
Given it is kinda long I would put it in a function
This has ENT_QUOTES to make sure single and double quotes are encoded, but it will also encode special characters (Like in José) instead of inserting an empty string.
Then you can do:
and