提交后,PHP表单会再次出现在下方

时间:2013-10-31 06:34:31

标签: php

我有一个注册表单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.

所以当我在确认文本后确认整个页面下面的注册时,我会看到我的表格,包含所有横幅和导航以及所有div内容和表格。

是因为我包括confirm.php吗?

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

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

你应该重定向到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.

修改

当然只要您还没有向浏览器输出任何内容(IE:echo 'Please fill out the form correctly';

答案 2 :(得分:0)

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

您最应该将表单提交给confirm.php,然后将用户重定向到confirm.php

答案 3 :(得分:0)

您可以将页面重定向到confirm.php,或者如果要包含confirm.php 比你需要在行包括('confirm.php');

之后放入exit()或die()
<?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;
    }
?>