多页PHP表单错误

时间:2018-04-11 10:04:26

标签: php wordpress session post get

第1页的信息已成功转移到第2页,但在第2页填写并提交后,第3页将作为404错误页面打开。 我不知道出了什么问题(使用Wordpress和第3页确实存在但在第2页提交后无法打开)。 你可以实时查看here。 第一页位于offer/ 第二页是offer/details/ 第3页位于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);

2 个答案:

答案 0 :(得分:0)

使用隐藏字段

echo '<input type="hidden" name="page_2_valid_0987" value="page_2_valid_0987" />';
步骤2中的

你在function.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);

答案 1 :(得分:0)

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