Php 表格Won';t重定向到响应页面

Php 表格Won';t重定向到响应页面,php,validation,redirect,Php,Validation,Redirect,创建了一个表单,它使用php检查错误,但是在成功提交后,它不会重定向到我创建的响应页面(Thank.php)。它重定向到具有相同标题和页面格式的同一联系人页面,但没有实际文本,bodytext div不显示。我只需要它重定向到我创建的响应页面。有什么帮助吗 代码如下: <?php $firstnameerror=$browsererror=$sexerror=$dateerror=$visiterror=$judgementerror=$emailerror=$emailconfirme

创建了一个表单,它使用php检查错误,但是在成功提交后,它不会重定向到我创建的响应页面(Thank.php)。它重定向到具有相同标题和页面格式的同一联系人页面,但没有实际文本,bodytext div不显示。我只需要它重定向到我创建的响应页面。有什么帮助吗

代码如下:

<?php
 $firstnameerror=$browsererror=$sexerror=$dateerror=$visiterror=$judgementerror=$emailerror=$emailconfirmerror="";

 if (isset($_GET['submit'])){
        $browser = htmlspecialchars($_GET['browser']);
        $firstname = htmlspecialchars($_GET['firstname']);
        $lastname = htmlspecialchars($_GET['lastname']);
        $sex = htmlspecialchars($_GET['sex']);
        $date = htmlspecialchars($_GET['date']);
        $visit = htmlspecialchars($_GET['visit']);
        $judgement = htmlspecialchars($_GET['judgement']);
        $message = htmlspecialchars($_GET['message']);
        $email = htmlspecialchars($_GET['email']);
        $emailconfirm = htmlspecialchars($_GET['emailconfirm']);

        echo "<p>form submitted</p>";

        if (isset($browser) && isset($firstname) && isset($lastname) && isset($sex) && isset($date) && isset($visit)
          && isset($judgement) && isset($message) && isset($email) && isset($emailconfirm)){
            echo "<p>all fields were submitted</p>";}

        if (empty($firstname)){
            $firstnameerror .= "<div class= 'error'>First name is missing</div>";}

        if (empty($browser)){
            $browsererror .= "<div class= 'error'>Tell us where you're from</div>";}

        if (empty($sex)){
            $sexerror .= "<div class= 'error'>Gender is missing</div>";}

        if (empty($date)){
            $dateerror .= "<div class= 'error'>Date is missing</div>";}

        if (empty($visit)){
            $visiterror .= "<div class= 'error'>Tell us what you visited</div>";}

        if (empty($judgement)){
            $judgementerror .= "<div class= 'error'>Tell us what you thought</div>";}

        if (!empty($email) && empty($emailconfirm)){
            $emailerror .= "<div class= 'error'>Please confirm your email</div>";}

        if ($email != $emailconfirm){
            $emailconfirmerror .= "<div class='error'>Make sure your emails match.</div>";}

      if (empty($browsererror) && empty($firstnameerror) && empty($sexerror) && empty($dateerror) && empty($visiterror) && empty($judgementerror) && empty($emailerror)
          && empty($emailconfirmerror)){
          header('Location: thanks.php');
          exit();
        }
      }
?>

 <div class="bodytext">
  <form method="get" action="contact.php">
    <h2>Feedback</h2>
    <fieldset>
    <div>
    <label for="browser">Who are you?</label> <span style="font-size:10px;color:red">*Required</span><br>
    <input list="browsers" name="browser" placeholder="Click Arrow ->">
    <datalist id="browsers">
      <option value="Visitor">
        <option value="Town Resident">
          <option value="Cornell University Student">
            <option value="Ithaca College Student">
              <option value="Cornell University Professor">
                <option value="Ithaca College Professor">
                </datalist><?php echo $browsererror ?>
                </div><br><br>
                <div>
                <label for="firstname">First name</label> <span style="font-size:10px;color:red">*Required</span><br>
                <input type="text" name="firstname" placeholder="First Name" value="<?php echo $firstname ?>"/><br>
                <?php echo $firstnameerror ?>
              </div>
              <div>
                <label for="lastname">Last name</label><br><input type="text" name="lastname" placeholder="Last Name" value="<?php echo $lastname ?>"/>
              </div><br><br>
              <div>
                <label for="gender">Gender:</label>
                <input type="radio" name="sex" value="Male" checked>Male
                <input type="radio" name="sex" value="Female">Female<br>
                <?php echo $sexerror ?>
              </div><br>
              <div>
                <label for="date">Date of Visit</label> <span style="font-size:10px;color:red">*Required</span><br>
                <input type="date" name="date" min="2014-10-03" max="2014-10-05"><br>
                <?php echo $dateerror ?>
              </div><br>
              <div>
                <label for="visit">What did you visit?</label> <span style="font-size:10px;color:red">*Required</span><br>
                <input type="checkbox" name="visit" value="Fairway Market" checked>Fairway Market<br>
                <input type="checkbox" name="visit" value="Car Show">Car Show<br>
                <input type="checkbox" name="visit" value="First Peoples' Festival">First Peoples' Festival<br>
                <input type="checkbox" name="visit" value="Concerts">Concerts<br>
                <input type="checkbox" name="visit" value="Finger Lakes Cider Week">Finger Lakes Cider Week<br>
                <input type="checkbox" name="visit" value="Apple Pie Bake-off">Apple Pie Bake-off<br>
                <input type="checkbox" name="visit" value="Gallery Night">Gallery Night<br>
                <input type="checkbox" name="visit" value="Other">Other<br>
                <?php echo $visiterror ?>
              </div><br>
              <div>
                <label for="judgement">What did you think?</label> <span style="font-size:10px;color:red">*Required</span><br>
                <input type="radio" name="judgement" value="Loved It" checked>Loved It<br>
                <input type="radio" name="judgement" value="Liked It">Liked It<br>
                <input type="radio" name="judgement" value="Neutral">No Opinion/Neutral<br>
                <input type="radio" name="judgement" value="Didn't Like It">Didn't Like It<br>
                <input type="radio" name="judgement" value="Hated It">Hated It<br>
                <?php echo $judgementerror ?>
              </div><br>
              <div>
                <label for="message">Suggestions/Improvements</label><br>
                <textarea name="message" id="message" placeholder="Type your message here" value="<?php echo $message ?>"/></textarea><br><br>
               </div>
               <div>
                Do you want to be contacted about<br>future Downtown Ithaca Events?<br>
                <label for="email">E-mail:</label>
                <input type="email" name="email" placeholder="Type E-mail" value="<?php echo $email ?>"/><br>
                <label for="emailconfirm">Confirm:</label>
                <input type="email" name="emailconfirm" id="emailconfirm" placeholder="Confirm E-mail" value="<?php echo $emailconfirm ?>"/><br><br>
                <?php echo $emailerror ?><?php echo $emailconfirmerror ?></div>
                <input name="ResponseForm" type="hidden" value="thanks.php"/>
                <button type="submit" name="submit">Submit</button>
                </fieldset>
              </form>
          </div>
          <script src="JS/myscript.js"></script>
        </body>
        </html>

在回显内容后无法重定向。删除此回显,它将重定向:

echo "<p>form submitted</p>";
echo”提交的表格;
您不能使用
标题(“location:somewhere.php”)


在显示任何数据之前,必须先处理表单数据。另外,您应该使用JS进行验证,因为这样您就不必向服务器发出innecesarias请求并帮助服务器接收足够的数据,记住,在调用
头(“location:somewhere.php”)之前不要输出任何内容

empty
仅在变量不存在或设置为
false
时触发。如果创建的变量没有值,
empty
将不会触发

因此,将条件语句更改为:

empty($browsererror)
致:


尝试过之后,它仍然会将我重定向到同一页面删除所有输出如果你想使用
标题执行重定向如果你没有回显内容,那么错误不在重定向中,而是在错误处理中。尝试将重定向移动到
if(isset($\u GET['submit'])
之后,以查看重定向是否有效,如果有效,则在检查错误之前或中有错误。所有输出都已删除,但仍不会重定向到header@unixmiah您应该始终执行后端验证,并且永远不要依赖客户端验证-1用于声明服务器端验证很慢。永远不要相信客户端验证!如果我关闭javascript怎么办?然后我就可以输入任何我想要的?不,不,不。好吧,我不理解我们必须使用验证,但它很慢,你也可以做比如果JS被禁用,用户不能使用页面,并指示用户如何启用JS使用页面与JS验证任何人都可以注入,甚至完全重写任何验证。难以置信的坏习惯。
!$browsererror