我有一个3步PHP表格。
Page1.php - 一些细节,Page2.php - 第1页表格摘要,包含更多项目,最后是email.php - 发送所有键入信息的电子邮件。
在第1页的一个文本输入中,我可以写出#34; Blah Blah Blah"由于帖子,Page2.php将在摘要中写入。点击提交在page2.php上,感谢隐藏的输入," Blah Blah Blah"我在Page1中输入的内容将通过电子邮件发送给我。
然而,当我输入INCH(")时会发生奇怪的事情。例如在page1.php中,我键入"我得到了40" TV"在page2.php上它会说"我得到了40" TV"但我会收到一封电子邮件说'#34;我得到了40"。 "之后的文字消失。
知道为什么吗?
答案 0 :(得分:2)
我希望您在将其放入隐藏的输入字段时无法正确转义该值。我希望你的代码看起来像这样:
<input type="hidden" name="field1" value="<?php echo $_POST['field1']; ?>">
如果那里有双引号,你最终会得到这个:
<input type="hidden" name="field1" value="A 40" TV">
查看value
如何在中间结束,太早。 HTML破了。
您需要将其转义,例如使用htmlspecialchars
:
<input type="hidden" name="field1" value="<?php echo htmlspecialchars($_POST['field1']); ?>">
然后你最终得到这个:
<input type="hidden" name="field1" value="A 40" TV">