表格未在"中的用户键后发布

时间:2018-01-31 07:13:44

标签: php forms

我有一个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"。 "之后的文字消失。

知道为什么吗?

1 个答案:

答案 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&quot; TV">