【发布时间】:2020-06-13 00:54:39
【问题描述】:
我在两个页面上工作,第一个页面有一个包含三个字段的表单:名称、电子邮件和消息)。此页面会将这些数据发送到第二个页面,该页面将验证这些字段是否符合条件。
如果在第二页,这些字段中的任何一个不符合条件,我想重定向到第一页(或第三个 php 页面),用以前的信息填写表单并告诉用户正确更正字段.
我正在努力将数据从第二页发送到第一页(或第三页)。有谁知道一个好方法吗?
这是我的代码:
首页 - contato.html
<form action="validate.php" method="POST" name="emailform">
<div class="form-group">
<input type="text" id="name" name="nome" placeholder="Type your name">
</div>
<div class="form-group">
<input type="text" id="email" name="email" placeholder="type your@email.com here">
</div>
<div class="form-group">
<textarea class="form-control" cols="30" rows="10" maxlength="300" id="message" name="mensagem" placeholder="Leave your message." ></textarea>
</div>
<div class="form-group">
<input type="submit" name="submit" value="Send message" onclick="alert('Thank you!')" ></form>
第二页 - validate.php
if(isset($_POST['nome'])) $nome = $_POST['nome'];
if(isset($_POST['email'])) $email_visitante = $_POST['email'];
if(isset($_POST['mensagem'])) $mensagem = $_POST['mensagem'];
// if does not meet the criteria, redirect to contato.html and update the form with the info
if(empty($nome)){
Header("location:contato.html");
}
if(empty($email_visitante)){
Header("location:contato.html");
}
if(empty($mensagem)){
Header("location:contato.html");
}
// check for letters and space only
if (!preg_match("/^[a-zA-Z ]*$/",$nome)) {
Header("location:contato.html");
}
// check if e-mail address is well-formed
if (!filter_var($email_visitante, FILTER_VALIDATE_EMAIL)) {
Header("location:contato.php");
}
有人知道怎么做吗?发送到第三页或重定向到第一页(然后再次填写表格)
【问题讨论】:
标签: php html forms parameter-passing