如果我有三个PHP页面,我们称之为one.php,two.php和three.php,我在第一页上使用这样的东西:
<form name = "one" action = "two.php" onsubmit="return validateForm();" method ="post">
我知道我现在可以使用我在one.php中单独传递的变量...
我的问题是,如何在three.php中使用one.php中的变量?
每次我尝试调用它时都会出现“未定义索引”错误,就像我在two.php中那样。
非常感谢你的帮助!
编辑:我应该提到我也在使用Sessions。
在第二页上,我做了类似的事情:
$ _ SESSION ['name'] = $ _POST ['name'];
并且它允许我将从第一页收集的名称传递给第二页,但是当我尝试在第三页上执行此操作时,它只是说“未定义的索引”。
答案 0 :(得分:2)
您需要使用$ _SESSION
,而不是使用post所以例如:
one.php
session_start();
$_SESSION["mypostvalue"] = $_POST["mypostvalue"];
$_SESSION["mypostvalue1"] = $_POST["mypostvalue1"];
three.php
session_start();
echo $_SESSION["mypostvalue"];
echo "<br />";
echo $_SESSION["mypostvalue1"];
然后,一旦你完成了会话数据,你需要像这样摆脱它:
session_start();
$_SESSION = null;
session_destory();
注意每页只使用一次session_start(),并且在将任何数据发送到浏览器之前,例如html或空格。
答案 1 :(得分:1)
我知道我现在可以使用我在one.php中单独传递的变量...
不是这样的。
表单中成功的表单控件会将其值提交到two.php
。然后,您可以通过$_POST['name_of_control']
。
如果您使用PHP变量创建的值生成表单控件(可能是隐藏类型)(确保逃避它们以抵御XSS攻击),那么它们将出现在表单中并被提交。
我的问题是,如何在three.php中使用one.php中的变量?
这取决于浏览器如何获得three.php。您可以生成另一个表单并将值再次放入隐藏的输入中。
答案 2 :(得分:0)
$ _ POST是每个请求您应该使用$ _SESSION或$ _GET将它们传递给第三个文件。
答案 3 :(得分:0)
确保输入元素的名称正确无误。如果您想在 two.php 中使用$_POST["myvar"]
,则 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>