在页面之间来回发送PHP变量

我创建了一个注册表单,成功将其变量从注册页面(go-gold.php)传递到摘要/验证页面(go-gold-summary.php)。 数据在第二页上正确显示。

但是,我希望能够使用图像按钮返回到注册页面,以防用户输入错误。 回过头来,原始表单现在应该填入首次输入的数据。

问题是我无法将第二页的数据重新发送/返回到第一页。 我的文本字段显示为空白。 我不想使用会话变量。

代码从整个页面被截断。

注册页面(go-gold.php):

<?php
$customer_name = $_POST['customer_name'];
?>

<form action="go-gold-summary.php" method="post">

Name: <input type="text" name="customer_name" id="customer_name" value= "<?php echo $customer_name ?>" />
<input name="<?php echo $customer_name ?>" type="hidden" id="<?php echo $customer_name ?>">

</form>

摘要页面(go-gold-summary.php)

<?php
$customer_name = $_POST['customer_name'];
?>

<form action="go-gold.php" method="post">

Name: <?php echo $customer_name ?> <input type="hidden" id="<?php echo $customer_name ?>" name="<?php echo $customer_name ?>">

<INPUT TYPE="image" src="images/arrow_back.png" id="arrow" alt="Back to Registration"> (Button to go back to Registration Page)

</form>

谢谢!


go-gold-summary.php应该像这样改变。

<?php
$customer_name = $_POST['customer_name'];
?>

<form action="go-gold.php" method="post">

Name: <?php echo $customer_name ?> <input type="hidden" value="<?php echo $customer_name ?>" name="customer_name">

<INPUT TYPE="submit" src="images/arrow_back.png" id="arrow" alt="Back to Registration"> (Button to go back to Registration Page)

</form>

注意我是如何改变这条线的

<input type="hidden" id="<?php echo $customer_name ?>" name="<?php echo $customer_name ?>">

进入这个

<input type="hidden" value="<?php echo $customer_name ?>" name="customer_name">

$ _POST是一个关联数组,当你提交表单时,它将像这样被填充:

$_POST["index"] = value;

其中"index"是文本字段“名称”, value是文本字段值。

你错过了你的代码。 只需使用我的代码进行更新即可使用


为什么你不想使用PHP会话? 请给出任何不使用它的理由。 我这样问,因为我的名声不允许我评论除我自己以外的任何问题或答案。 请为此不要-1。

另一种方式可能是使用cookie来临时存储数据,但与会话相比,在发布请求中来回发送数据实际上是不安全的。


几乎没有办法在页面间维护变量。 另一种方法是在第二页上使用包含$ _POST数据的隐藏文本字段的单独表单,并使用submit按钮调用上一页。 不幸的是,没有办法绕过浏览器上的“后退按钮”。

我错过了有关会话变量的粗体文本 - 无视这种情况不适用:

在服务器端跨页面维护变量的一种方法是使用$ _SESSION

首先在您的PHP页面的顶部包含以下内容以保持会话处于活动状态:

session_start();

一旦您提交并转到第2页,请添加以下内容:

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

同样,在第一页上,您可以像这样更改表单元素:

<input type="text" name="customer_name" value="<?PHP if isset($_SESSION['customer_name'] || !empty($_SESSION['customer_name'])) { echo $_SESSION['customer_name']; } ?>">

这会保持填充数据并在用户返回页面时显示它,如果他们放入不同的东西,它们会在再次打到第2页时更新。

链接地址: http://www.djcxy.com/p/12901.html

上一篇: Sending PHP variables back and forth between pages

下一篇: Best way to package a JavaScript library that requires jQuery?