1

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

注册_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>

注册_2.php

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

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

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

4

4 回答 4

2
session_start();
$reg_type=$_POST["Reg_type"];
$_SESSION['cust_type'] = $reg_type;

在任何页面中,

session_start();
echo $_SESSION['cust_type']; 

如需更多信息,

http://matthom.com/archive/2005/02/19/php-passing-variables-across-pages

http://www.plus2net.com/php_tutorial/variables.php

PHP 将变量传递到下一页

http://mrarrowhead.com/index.php?page=php_passing_variables.php

http://php.net/manual/en/reserved.variables.session.php

于 2012-09-09T04:52:30.350 回答
1

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

你有几个选择。你可以做一个包含,而不是做一个重定向。

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

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

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

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

于 2012-09-09T04:48:52.070 回答
0

您将表单发布到 page1,然后重定向到 page2。由于重定向,Page2 无法访问已发布的数据(未携带该帖子)。

您应该做的是处理 page1 中的数据并在重定向之前将其存储(例如,在会话中,或使用您已注释掉的查询字符串)。

另请注意,当您使用 调用重定向时header,请确保您也exitdie之后立即像php 文档中提到的那样(因为您不能保证页面将在那里停止处理)。

于 2012-09-09T04:46:38.933 回答
0

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

注册_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) {
于 2012-09-09T04:46:48.310 回答