将表单数据发送到一个页面,然后再发送到另一个页面


Sending form data to one page, then another?

我在这个方面遇到了一些麻烦,尽管它可能很基本。我有一个简单的表单,包含名称、电子邮件、评论等,可以将自己输出到一个php页面,但我希望有一个链接将其发送到第二个页面,例如:

<label for="name">Name:</label><input type="text" name="name" size="20" />

转到带有此代码的第二个页面(second.php)并打印它:

print "<div>Thank you, $name.</p></div>";

但是,如果我尝试使用类似的代码将$name发送到第三个页面(third.php),它显示为:

Thank you, $name.

使用实际变量,而不是$name中存储的内容。

我觉得我错过了一件小事,但我不确定它是什么。我用过这个:

$name = $_POST['name'];

将其带到second.php,并将其带至third.php:

print 'Click <a href="third.php? name=' . $name . '">here</a> to proceed.';

只是想看看它是否会从second.php中获得相同的信息,但我认为它不是这样工作的。在第三页上还有什么我应该做的吗?我有一种感觉,这是一件微不足道的事情,但随着我的学习,我无法完全理解它。

您可以这样做。

当您申报时

$name = $_POST['name'];

您可以在标头中使用来传递此变量

if(isset($_POST['btnname']))
{
header('Location: second.php?name='.$name);
}

在您的第二个php 中

你可以通过这种方式得到

 Thank you, <php echo $_GET['name']; ?>

或者,如果你想让它对所有页面都可用,请使用会话

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

=D

您可以使用隐藏的输入进行尝试

<label for="name">Name:</label>
<input type="hidden" name="name" value="<? echo $name; ?>" size="20" />

网站是无状态的,这意味着变量在服务器上只持续几秒钟,然后html被呈现并发送到客户端浏览器。然后释放服务器内存以服务于其他客户端。

您有几个选项:
1) 使用隐藏表单字段并将其名称打印(使用php)到隐藏表单字段,这样当他们再次发布时,它就会被保存(如果他们再次发布)
2) 会话
3) Cookie
4) 在url中打印出来(即page.php?name=".$name;)

这完全取决于你如何进入第三个页面(从链接?表单?php重定向?)

您可以将名称存储在第二页中,并在调用第三页之前再次设置$_GET变量。这是因为变量仅对该特定请求有效,并且在发出另一个请求时需要再次设置这些变量。

相关文章: