我有一个联络表格,它的作用是contact.php。Contact.php具有所有的表单验证。Index.php有表单。当我单击表单上的send,其中一个输入标记无效时,它会将我发回,并告诉我哪些输入标记被错误填充。问题是,所有正确的其他输入值现在都是空的。是否有一种方法可以使用$_GET保存输入标记的原始值?我会使用$_GET,但我有一个消息文本区域,最多可达1000个字符。我不想要URL中的1000个字符。
发布于 2014-08-20 22:05:52
为什么要在不包含表单的文件的函数中进行验证?您的验证应该在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']是否是真的。
发布于 2014-08-20 22:12:25
您可以使用会话变量,因此在contact.php中可以设置例如$_SESSION['form_data'] = $_POST;,然后可以从index.php访问它。
或者,您可以使用一个jQuery验证器来验证表单提交之前的文本。
发布于 2014-08-20 22:09:07
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>https://stackoverflow.com/questions/25415057
复制相似问题