我正在创建一个HTML表单(使用Swift Mailer发送纯文本电子邮件但是现在并不重要),使用PHP服务器端,我希望在其中显示用户'文本输入,以便在实际发送电子邮件之前最终确认。
我使用nl2br(htmlspecialchars())
安全地显示用户的表单字段输入,然后需要将该输入输出到<input type="hidden" ../>
表单字段中,以便再次提交以实际创建电子邮件。< / p>
电子邮件正文显然可以包含各种可能有问题的字符,例如单引号和双引号,&符号,小于和大于符号。
在我的输入字段的上下文中,我是否正确地认为我的唯一(?)问题是确保表单引用value=".."
(我通常使用双引号)和输入字符串中的任何引号字符价值不会相互冲突?是否存在与htmlspecialchars
类似的PHP函数,它会根据需要转义引号?我不想将任何内容转换为HTML实体,因为我将发送的电子邮件将是纯文本。
答案 0 :(得分:0)
您必须使用String addslashes( $str )
http://php.net/manual/fr/function.addslashes.php
答案 1 :(得分:0)
在进一步阅读PHP手册后,看起来好像我可以使用htmlspecialchars($text, ENT_QUOTES)
安全地为表单字段编码我的文本,然后使用(&#34;相对&#34;新的相应反向)函数)htmlspecialchars_decode($text, ENT_QUOTES)
在创建纯文本电子邮件时将HTML实体安全地再次转换回普通字符。