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