2017-02-26 18 views
0

我嘗試挑戰我自己,但我堅持( 我嘗試創建2個步驟確認一個PHP形式:PHP表單2步確認

  1. 當用戶填寫表格,並點擊提交,它檢查所有條件(名稱,通過等)如果一切正常自動重定向用戶

  2. 重定向後(到同一頁面)用戶可以再次檢查所有的細節 如果他們確定,再次擊中提交按鈕,重定向到最後一頁。

我卡在第二階段...如何重定向到最後一頁?

我很初學所以我很好奇什麼可以做得更好或任何建議。

<?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

在您的表單中添加動作以重定向最終頁面。

你已經在會話中的所有值,以便可以在最後一頁還

<?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']; 
?> 
訪問