PHP在表单验证后将表单数据放回表单中

时间:2014-08-20 21:54:02

标签: php html forms

我有一个联系表单,其行动是contact.phpContact.php具有所有表单验证。 Index.php有表格。当我单击表单上的发送并且其中一个输入标签无效时,它会将我发回给我并告诉我哪些输入标签未正确填充。问题是所有其他正确的输入值现在都是空的。有没有办法保存输入标签的原始值而不使用$_GET?我会使用$_GET,但我有一条消息textarea,最多可以包含1000个字符。我不希望网址中包含1000个字符。

3 个答案:

答案 0 :(得分:1)

您可以使用会话变量,因此在contact.php中您可以设置$_SESSION['form_data'] = $_POST;,然后您可以从index.php进行访问。

或者您可以使用例如jQuery验证器在提交表单之前验证文本。

答案 1 :(得分:0)

为什么您的验证发生在不包含表单的文件的函数中?您的验证应该在index.php进行,然后您可以使用$_POST。如果全部通过,则将用户重定向到下一页。

<input type="text" name="my_input" value="<?=isset($_POST['my_input']) ? $_POST['my_input'] : NULL?>

以上使用三元运算符并表示输入的值要么是此输入的$_POST值($_POST['my_input']),要么是NULL。决定它是一个还是另一个的是isset($_POST['my_input']是否为真。

答案 2 :(得分:0)

单page.php文件

<?php

if ($_POST['action'] === 'doit') {
    // Validation and other logic
    // Send email using $_POST['email'] etc.
}

?>

<form>
<input type="text" name="email" value="<?php echo $_POST['email'] ?>" />
<input type="hidden" name="action" value="doit" />
<input type="submit" value="Contact" />
</form>