PHP:将提交的表单文本输出到隐藏的输入字段,以便再次提交


PHP: Output submitted form text into hidden input field for submission again

我正在创建一个HTML表单(发送纯文本电子邮件,使用Swift Mailer ..但是现在这并不重要),使用PHP服务器端,我想在其中显示用户的文本输入,以便他们在实际发送电子邮件之前最终确认。

我使用nl2br(htmlspecialchars())安全地显示用户的表单字段输入,然后需要将该输入输出到<input type="hidden" ../>表单字段中,以便再次提交以实际创建电子邮件。

电子邮件正文显然可以包含各种潜在的麻烦字符,如单引号和双引号,与号,小于然后和大于的符号。

在我的输入字段的上下文中,我认为我唯一的(?)问题是确保value=".."周围的形式引号(我通常使用双引号)和输入字符串值中的任何引号字符不相互冲突吗?是否有一个类似于htmlspecialchars的PHP函数,它将根据需要转义引号?我不想把任何东西转换成HTML实体,因为我要发送的电子邮件将是纯文本。

必须使用String addslashes( $str ) http://php.net/manual/fr/function.addslashes.php

在进一步阅读PHP手册之后,看起来好像我可以使用htmlspecialchars($text, ENT_QUOTES)安全地为表单字段编码文本,然后在创建纯文本电子邮件消息时使用("相对"新的对应的反向函数)htmlspecialchars_decode($text, ENT_QUOTES)将HTML实体再次安全地转换回正常字符。