首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php表单2步骤确认

php表单2步骤确认
EN

Stack Overflow用户
提问于 2017-02-26 04:00:36
回答 1查看 62关注 0票数 0

我试图挑战我的自我,但我坚持了(我尝试创建一个php表单,其中包含两个步骤的确认:

  1. 当用户填写表单并点击Submit时,它会检查所有条件(姓名、传递等)。如果一切正常,自动重定向用户。
  2. 重定向(到同一页)后,用户可以再次检查所有详细信息。如果他们确定,再次点击提交按钮,它重定向到最后一页。

我停留在第二phase...how重定向到最后一页?

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

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

发布于 2017-02-26 04:47:26

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

您已经有了会话中的所有值,所以您也可以在最后一页中访问它。

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?php
session_start();
$title = $_SESSION['title'];
$fName = $_SESSION['fName'];
$lName = $_SESSION['lName'];
$age = $_SESSION['age'];
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42464594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档