成功进行PHP验证后,如何自动提交表单数据?

时间:2014-01-13 18:37:18

标签: php forms validation submission

这就是我简单的做法:

<?php
// define variables and initialize with empty values

//error variables
$agentNameErr = "";

//non-error variables
$agentemail = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

if (empty($_POST["agentname"])) {
        $agentNameErr = "Missing";
    }
else {
        $agentname = $_POST["agentname"];
    }
}

// form

<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" >

<input name="agentname" type="text" id="agentname" autocomplete="on"  placeholder="Agent Name" value= "<?php echo htmlspecialchars($agentname);?>" />

//only shows up if $agentNameErr is assigned the value of "Missing"

<span class="error"><?php echo $agentNameErr;?></span>

</form>

检查$agentname是否错误(空白)。如果它不是空白,我不知道如何继续。我希望它只是自动提交所有信息而无需任何额外的用户输入到评论页面,这样用户就可以看到名称拼写是否正确。然后他们可以做最后的提交。

我不知道MySQL。

用普通英语:

//user presses the submit button

if ($agentname has error)
   stay on page and display errors
else 
   submit automatically to next page (order review page for visual checking)

如何“自动提交到下一页”?

3 个答案:

答案 0 :(得分:0)

使用php会话。

if ($agentname has error)
   stay on page and display errors
else
{
   $_SESSION['key1'] = 'something'
   $_SESSION['key2'] = 'something else'
   ...
   header('location: ' . $next_page);
}

如果您不知道如何使用php会话,请参阅示例here

答案 1 :(得分:0)

试试这个:

    <?php

    $agentNameErr = "";
    $agentemail = "";

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

        if (empty($_POST["agentname"])) {
            $agentNameErr = "Missing";
        } else {
            $agentname = $_POST["agentname"];
            header("Location: nextpage.php?agent=".$agentname);
        }
    } else {

    ?>

    <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" >

    <input name="agentname" type="text" id="agentname" autocomplete="on"  placeholder="Agent Name" value= "<?php echo htmlspecialchars($agentname);?>" />

    //only shows up if $agentNameErr is assigned the value of "Missing"
    <?php if(!empty($agentNameErr)) { ?>
    <span class="error"><?php echo $agentNameErr;?></span>
    <?php } ?>
    </form>
<?php } ?>

答案 2 :(得分:0)

保持简单。捕获表单的全部内容并存储在会话变量中。

$agentNameErr = '';
$agentemail = '';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (empty($_POST['agentname'])) {
        $agentNameErr = 'Missing';
    } else {
        $_SESSION['agent-form'] = $_POST;
        // Move to next page
        header('Location: nextpage.php');
        exit;
    }
}

转发到下一页后,您可以从会话变量访问表单数据。

// Entire contents of form
print_r($_SESSION['agent-form']);
// "agentname" data
print_r($_SESSION['agent-form']['agentname']);