如何在PHP中正确地转义html表单input默认值?

鉴于以下两个HTML / PHP代码片段:

<input type="text" name="firstname" value="<?php echo $_POST['firstname']; ?>" />

<textarea name="content"><?php echo $_POST['content']; ?></textarea>

什么字符编码我需要使用回显的$_POSTvariables? 我可以使用任何内置的PHP函数吗? 请假定$_POST值尚未被编码。 没有魔法没有引号。

使用htmlspecialchars($_POST['firstname'])htmlspecialchars($_POST['content'])

总是使用htmlspecialchars()string转义给用户。

但是,htmlspecialchars()不会帮你value='single quotes'

这是发生了什么事情:

value='We're not using this in our &quot;code&quot;...'

你看到的只是We

htmlspecialchars将在两种情况下工作。 查看不同的标志选项以避免引号在input情况下成为问题。