多页 PHP 表单错误


第 1 页的信息已成功传输到第 2 页,但是,在第 2 页填写

并提交后,第 3 页将作为 404 错误页面打开。我不知道出了什么问题(我使用的是 Wordpress,第 3 页确实存在,但在提交第 2 页后无法打开(。您可以在此处实时查看。第一页在offer/第二页在offer/details/第三页在offer/details/results/

所以第 1 页的代码是:-

<form action="details/" method="post">
    Loan Calculator
    <select name="loan_amount" class="form-inline" style="width:200px;">
        <option value="1000">$1,000 Loan</option>
        <option value="25000" selected="selected">$25,000 Loan</option>
    </select>
    <select name="loan_tenure" class="form-inline" style="width:125px;">
        <option value="4">4 Years</option>
        <option value="5" selected="selected">5 Years</option>
    </select>
    <input type="submit" value="Calculate" class="form-inline">
</form>

第 2 页的代码是:-

session_start();
foreach ($_POST as $key => $value) {
    $_SESSION[$key] = $value;
}
echo '<form action="results/" method="post">';
echo '<strong>Who should we send this quote to?</strong><br>';
echo '<input type="hidden" name="loan_amount2" value="' . $_POST["loan_amount"] . '" />';
echo '<input type="hidden" name="loan_tenure2" value="' . $_POST["loan_tenure"] . '" />';
echo '<input style="width:320px; margin-left:16px; margin-top:15px;" type="text" name="name" placeholder="Name*"><br>';
echo '<input style="width:320px; margin-left:16px;" type="email" name="email" placeholder="Email*"><br>';
echo '<input style="width:320px; margin-bottom:7px; height:50px; padding-left:7px;" type="phone" name="phone" placeholder="Phone*"><br>';
echo '<input type="submit" value="Get My Monthly Repayments">';
echo '</form>';

第 3 页的代码是:-

session_start();
foreach ($_POST as $key => $value) {
    $_SESSION[$key] = $value;
}
var_dump($_SESSION);

使用隐藏字段

echo '<input type="hidden" name="page_2_valid_0987" value="page_2_valid_0987" />';

在步骤 2 中

在你的函数中.php应该是这样的。

if(isset($_POST['page_2_valid_0987'])){
    store_values_of_page_two($_POST);
}
function store_values_of_page_two($_POST) { 
    session_start(); 
    foreach ($_POST as $key => $value) { 
        $_SESSION[$key] = $value; 
    } 
    $newURL = site_url(); . "/offer/details/results/"; 
    wp_redirect( $newURL );
    exit;
}

在结果页中打印会话

session_start();
var_dump($_SESSION);

我发现了错误(感谢@vel(。这实际上是非常愚蠢的。在第 2 页表单代码中,input字段的名称为 name这是非法的,因为它是一个特殊的关键字。这就是导致错误的原因。

最新更新