PHP在表单验证后将表单数据放回表单中
我有一个联系人表单,它的动作是PHP在表单验证后将表单数据放回表单中,php,html,forms,Php,Html,Forms,我有一个联系人表单,它的动作是contact.phpContact.php具有所有表单验证
contact.php
Contact.php
具有所有表单验证$\u GET
保存输入标记的原始值而不使用out?我会使用$\u GET
,但我有一个消息文本区域,最多可以包含1000个字符。我不希望URL中包含1000个字符。为什么要在不包含表单的文件的函数中进行验证?您的验证应该在index.php
中进行,然后您可以使用$\u POST
。如果全部通过,则将用户重定向到下一页
<input type="text" name="my_input" value="<?=isset($_POST['my_input']) ? $_POST['my_input'] : NULL?>
single-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>
您可以使用会话变量,因此在contact.php
中可以设置例如$\u session['form\u data']=$\u POST
,然后可以从index.php
访问它
或者,您可以使用jQuery验证器在提交表单之前验证文本 由于在两个文件之间来回移动,它需要使用查询字符串重定向,将这些变量传递回表单。如果您将逻辑和HTML放在同一个文件中,那么在验证完成后,您只需在页面下一步重用$\u POST变量即可。不在同一个文件中。。。contact.php vrs index.phpI了解您的意思,但是如果验证失败,任何类型的重定向都应该被终止。用户应该停留在表单页面上,并在发送到其他页面之前,被迫修复他们需要修复的任何内容。所以他应该把验证移到index.php
。。。或者将所有内容移动到contact.php,“转到联系人到联系人,保持联系直到联系”。我试图在另一个页面上进行验证以使文件更易于阅读,但这是最好的选择。这最直接地回答了问题。尽管实际上并不需要所有这些数据的传递。