php表单2步确认

时间:2017-02-26 04:00:37

标签: php forms

我试图挑战自我,但我卡住了( 我尝试用2步确认创建一个php表单:

  1. 当用户填写表单并点击提交时,它会检查所有条件(姓名,通行证等)。如果一切正常,则会自动重定向用户。

  2. 重定向(到同一页面)后,用户可以再次检查所有细节。 如果确定,再次点击提交按钮,重定向到最后一页。

  3. 我坚持第二阶段...如何重定向到最后一页?

    我是初学者,所以我很好奇可以做得更好或任何建议。

    <?php
     // the php code 
    session_start();
    
    
    if ($_SERVER['REQUEST_METHOD'] == "POST") {
    
    // setting up the variables
    
    $title = $_POST['title'];
    $fName = trim(filter_input(INPUT_POST,'fName', FILTER_SANITIZE_STRING));
    $lName = trim(filter_input(INPUT_POST,'lName',FILTER_SANITIZE_STRING));
    $age = intval($_POST['age']);
    
    
    $_SESSION['title'] = $title;
    $_SESSION['fName'] = $fName;
    $_SESSION['lName'] = $lName;
    $_SESSION['age'] = $age;
    
    
    
    //checking for possible errors
    if ( $fName == "" || strlen($fName) <= 2 ) {
        $errorMsg1 = "<span>Provide your First name!(minimum 3 characters)</span>";
        $status = false;
    
    }
    else if ( $lName == "" || strlen($lName) <= 2 ) {
        $errorMsg2 = "<span>Provide your Last name!(minimum 3 characters)</span>";
        $status = false;
    
    }
    else if ( $age < 18 ) {
        $errorMsg3 = "<span>You must be 18 or above!</span>";
        $status = false;
    
    }
    
    else {  $status = true; }
    
    // redirecting to done page
    
    if ($status) {
        header("Location:TEST ZONE.php?status=awaiting");
        }
      }
    
     ?>
    <!doctype html>
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <div id="wrapper">
    <?php
    
    if ( isset($_GET['status']) && $_GET['status'] == "awaiting" ) {
        echo "<form>"
        . "Check your Details!<br>"
        . $_SESSION['title'] . "<br>"
        . $_SESSION['fName'] . "<br>"
        . $_SESSION['lName'] . "<br>"
        . $_SESSION['age'] . "<br>"
       // **NOW WHEN I'M in the awaiting phase, i don't know what to do(**
    
        . "<input type='submit' name='submit'/>";
    
        echo "</form>";
       }
    
       else {  ?>
        <form action="TEST ZONE.php" method="post">
        <h3>Register Form </h3>
    
        <label for="title">Title </label>
        <select name="title">
            <option name="mr">Mr</option>
            <option name="ms">Ms</option>
        </select><br><br><br>
        <label for="fName">First Name</label><br>
        <input type="text" name="fName" id="fName" value="<?php if    (isset($fName)) { echo $fName; } ?>"><br><?php
        if (isset( $errorMsg1 )) {
            echo $errorMsg1;
        }
        ?><br><br>
    
        <label for="lName">Last Name</label><br>
        <input type="text" name="lName" id="lName" value="<?php if (isset($lName)) { echo $lName; } ?>"><br><?php
        if (isset( $errorMsg2 )) {
            echo $errorMsg2;
        }
        ?><br><br>
    
        <label for="age">Age</label><br>
        <input type="text" name="age" id="age" value="<?php if (isset($age)) { echo $age; }?>"><br><?php
        if (isset($errorMsg3)){
            echo $errorMsg3;
        } ?><br><br>
        <input type="submit" value="Submit"><input type="reset">
    
    </form> <?php } ?>
      </div>
    
    
    
     </body>
    </html>
    

1 个答案:

答案 0 :(得分:1)

在表单中添加操作以重定向最终页面。

您已在会话中拥有所有值,因此您也可以在最后一页中访问它

<?php

 // the php code 
session_start();


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

// setting up the variables

$title = $_POST['title'];
$fName = trim(filter_input(INPUT_POST,'fName', FILTER_SANITIZE_STRING));
$lName = trim(filter_input(INPUT_POST,'lName',FILTER_SANITIZE_STRING));
$age = intval($_POST['age']);


$_SESSION['title'] = $title;
$_SESSION['fName'] = $fName;
$_SESSION['lName'] = $lName;
$_SESSION['age'] = $age;



//checking for possible errors
if ( $fName == "" || strlen($fName) <= 2 ) {
    $errorMsg1 = "<span>Provide your First name!(minimum 3 characters)</span>";
    $status = false;

}
else if ( $lName == "" || strlen($lName) <= 2 ) {
    $errorMsg2 = "<span>Provide your Last name!(minimum 3 characters)</span>";
    $status = false;

}
else if ( $age < 18 ) {
    $errorMsg3 = "<span>You must be 18 or above!</span>";
    $status = false;

}

else {  $status = true; }

// redirecting to done page

if ($status) {
    header("Location:TEST ZONE.php?status=awaiting");
    }
  }

 ?>
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<div id="wrapper">
<?php

if ( isset($_GET['status']) && $_GET['status'] == "awaiting" ) {
    echo "<form action='final_page.php'>"
    . "Check your Details!<br>"
    . $_SESSION['title'] . "<br>"
    . $_SESSION['fName'] . "<br>"
    . $_SESSION['lName'] . "<br>"
    . $_SESSION['age'] . "<br>"
   // **NOW WHEN I'M in the awaiting phase, i don't know what to do(**

    . "<input type='submit' name='submit'/>";

    echo "</form>";
   }

   else {  ?>
    <form action="TEST ZONE.php" method="post">
    <h3>Register Form </h3>

    <label for="title">Title </label>
    <select name="title">
        <option name="mr">Mr</option>
        <option name="ms">Ms</option>
    </select><br><br><br>
    <label for="fName">First Name</label><br>
    <input type="text" name="fName" id="fName" value="<?php if    (isset($fName)) { echo $fName; } ?>"><br><?php
    if (isset( $errorMsg1 )) {
        echo $errorMsg1;
    }
    ?><br><br>

    <label for="lName">Last Name</label><br>
    <input type="text" name="lName" id="lName" value="<?php if (isset($lName)) { echo $lName; } ?>"><br><?php
    if (isset( $errorMsg2 )) {
        echo $errorMsg2;
    }
    ?><br><br>

    <label for="age">Age</label><br>
    <input type="text" name="age" id="age" value="<?php if (isset($age)) { echo $age; }?>"><br><?php
    if (isset($errorMsg3)){
        echo $errorMsg3;
    } ?><br><br>
    <input type="submit" value="Submit"><input type="reset">

</form> <?php } ?>
  </div>

<强> final_page.php

<?php
session_start();
$title = $_SESSION['title'];
$fName = $_SESSION['fName'];
$lName = $_SESSION['lName'];
$age = $_SESSION['age'];
?>