PHP不发送POST数据

时间:2012-09-09 04:41:17

标签: php html session http-post

我终于得到了我的注册页面的第一页。在继续下一页之前,用户 选择三个选项之一。我现在 的问题是第一页没有将数据发送到下一页。这是

的代码

Registration_1.php:

$reg_type = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (!empty($_POST["Reg_type"])) {
        //$reg_type=$_POST["Reg_type"];
        //header('Location: Registration_2.php?rtype='.$reg_type);
        $reg_type=$_POST["Reg_type"];
        header('Location: Registration_2.php');
    }
}
?>

<form name="frmtype" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" >
<input type="radio" name="Reg_type" value="1"/> Registering myself with credit card or bank account <br/>
<input type="radio" name="Reg_type" value="2"/> Registering multiple people using credit card or bank account <br/>
<input type="radio" name="Reg_type" value="3"/> Registering multiple people using a purchase order <br/>
<input type="submit" name="Submit" value="Submit" />
<?php
if(isset($_POST["Submit"]) && !isset($_POST["Reg_type"]))
    echo "Please select an option";
?>
</form>

Registration_2.php

<?php
$regtype=$_POST["Reg_type"];

echo "regtype value is:" . $regtype;
if($regtype==1) {
?>

但是regtype是空白的,这意味着我没有从上一页获得任何数据。谁能告诉我这是什么问题?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

这是因为您正在进行重定向,因此帖子数据不再存在。

您有几个选择。 您可以执行包含。而不是进行重定向。

您可以存储数据(会话,数据库等)

您可以将数据附加到重定向

header('Location: Registration_2.php?Reg_type=' . $_POST['Reg_type');

然后在Registration_2上使用$ _GET而不是发布。

答案 2 :(得分:0)

您将表单发布到第1页,然后重定向到第2页。由于重定向(帖子未随身携带),Page2无法访问发布的数据。

您应该做的是处理第1页中的数据并在重定向之前存储它(例如,在会话中,或使用像您一样注释掉的查询字符串)。

另一个注意事项,当您使用header呼叫重定向时,请确保您之后立即exitdie提及php documentation提及(因为您无法保证页面将停止处理)。

答案 3 :(得分:0)

首先,当您使用header重定向时,POST变量将丢失。您需要使用GET传递变量,以便在Registration_2.php上检索它们。

Registration_1.php

//...
header('Location: Registration_2.php?Reg_type=' . $_POST["Reg_type"]);
//...

和Registration_2.php:

$regtype=$_GET["Reg_type"];

echo "regtype value is:" . $regtype; if($regtype==1) {