PHP表单在提交后再次出现在下面

PHP表单在提交后再次出现在下面,php,Php,我有一个提交给它自己的注册表单enroll.php,如果所有输入都有效,它包括confirm.php,我必须将数据保存到表中 看起来像这样- enroll.php <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { include('validate.php'); if($valid) { require_once ('getDBconnection.php'); incl

我有一个提交给它自己的注册表单enroll.php,如果所有输入都有效,它包括confirm.php,我必须将数据保存到表中

看起来像这样-

enroll.php

  <?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    include('validate.php');

    if($valid) {
        require_once ('getDBconnection.php');        
        include ('confirm.php'); 
    }
}
function test_input($data) {
         $data = trim($data);
         $data = stripslashes($data);
         $data = htmlspecialchars($data);
         return $data;
    }
?>
<!DOCTYPE html >
<html>
// all html code with banner and navigation and form elements.

//所有带有横幅、导航和表单元素的html代码。
因此,当我在确认文本后的整页下方获得注册确认时,我会看到我的表单,其中包含所有横幅和导航以及所有div内容和表单

是因为我包含confirm.php吗


如果有什么问题,请告诉我,我刚刚开始学习php。

尝试在indlude confirm.php之后添加exit,以停止使用菜单等执行整个站点

if($valid) {
    require_once ('getDBconnection.php');        
    include ('confirm.php'); 
    exit();
}

您应该重定向到confirm.php,而不是包含它

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    include('validate.php');

    if($valid) {
        header('Location: confirm.php'); 
    }
}
function test_input($data) {
         $data = trim($data);
         $data = stripslashes($data);
         $data = htmlspecialchars($data);
         return $data;
    }
?>



<!DOCTYPE html >
<html>
// all html code with banner and navigation and form elements.

//所有带有横幅、导航和表单元素的html代码。
编辑
当然,只要您还没有向浏览器输出任何内容(即:
echo‘请正确填写表单’;

因为
enroll.php
会一直运行到文件的末尾,无论是否包含confirm.php


您最有可能将表单提交到confirm.php,然后在confirm.php中将用户重定向到confirm.php

您可以将页面重定向到confirm.php,或者如果希望包含confirm.php 然后您需要在include('confirm.php')行后面放置exit()或die()



是的,我试过了,它很管用,但我必须使用会话,这是唯一的重定向方法,没有办法包括它并解决这个问题。当然,有几种方法可以剥猫皮。包括退出();在包含common.php之后,或者进行测试以确定是否应该显示表单或确认文本。
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    include('validate.php');

    if($valid) {
        require_once ('getDBconnection.php');        
        include ('confirm.php'); 
        exit(); //or you can also use die();
    }
}
function test_input($data) {
         $data = trim($data);
         $data = stripslashes($data);
         $data = htmlspecialchars($data);
         return $data;
    }
?>