0

如果我有三个 PHP 页面,我们将它们命名为 one.php、two.php 和 three.php,我在第一页使用类似这样的内容:

<form name = "one" action = "two.php" onsubmit="return validateForm();" method ="post">

我知道我现在可以在 two.php 中使用我单独从 one.php 传递的变量...

我的问题是,我将如何在 three.php 中使用 one.php 中的变量?

每次尝试像在 two.php 中那样调用它们时,我都会不断收到“未定义索引”错误。

非常感谢您的帮助!

编辑:我应该提到我也在使用会话。

在第二页上,我做了这样的事情:

$_SESSION['name'] = $_POST['name'];

它让我将从第一页收集的名称传递到第二页,但是当我尝试在第三页上执行此操作时,它只会显示“未定义的索引”。

4

4 回答 4

2

您需要使用 $_SESSION 而不是使用 post

例如:

一个.php

session_start();
$_SESSION["mypostvalue"] = $_POST["mypostvalue"];
$_SESSION["mypostvalue1"] = $_POST["mypostvalue1"];

三.php

session_start();
echo $_SESSION["mypostvalue"];
echo "<br />";
echo $_SESSION["mypostvalue1"];

然后,一旦你完成了会话数据,你需要像这样摆脱它:

session_start();
$_SESSION = null;
session_destory();

注意每页只使用一次 session_start(),并且在任何数据发送到浏览器之前,例如 html 或空白。

于 2012-11-16T20:14:47.360 回答
1

我知道我现在可以在 two.php 中使用我单独从 one.php 传递的变量...

不是这样的。

表单中成功的表单控件会将其值提交到two.php. 然后,您可以通过 访问它们$_POST['name_of_control']

如果您使用从 PHP 变量创建的值(确保将它们转义以防御 XSS 攻击)生成表单控件(可能是隐藏类型),那么它们将出现在表单中并被提交。

我的问题是,我将如何在 three.php 中使用 one.php 中的变量?

这取决于浏览器如何访问three.php。您可以生成另一个表单并将值再次放入隐藏输入中。

于 2012-11-16T20:16:39.817 回答
0

$_POST 是每个请求您应该使用 $_SESSION 或 $_GET 将它们传递到第三个文件。

于 2012-11-16T20:14:31.437 回答
0

只需确保您的输入元素名称正确。如果要$_POST["myvar"]two.php中使用,则 one.php 中的属性name需要为“myvar”。

<form action="two.php" method="post">
    <input type='text' value='test myvar' name='myvar' />
    <input type='submit' value='go to 2' />
</form>

要在 three.php 中使用 one.php 中的变量只需它们作为隐藏输入传递。也就是说,将它们回显到two.php中的表单:

<form action="three.php" method="post">
    <input type='text' value='test var 2' name='myvar2' />

    <?php echo "<input type='hidden' name='myvar' value='" . $_POST["myvar"] . "' />"; ?>

    <input type='submit' value='go to 3' />
</form>
于 2012-11-16T20:15:13.190 回答