【发布时间】:2011-06-01 21:14:57
【问题描述】:
我有 3 页
Page1.php,page2.php,page3.php
在 page1.php 中,我有一些隐藏的值,例如 'name'
page1.php提交后,会转到page2。
然后在page2.php中经过一些处理后,应该需要自动提交到page3.php(page3.php在另一个服务器)
最后,当我在 page3.php 中打印 $_POST 变量时,我需要获取变量 'name'
【问题讨论】:
标签: php
我有 3 页
Page1.php,page2.php,page3.php
在 page1.php 中,我有一些隐藏的值,例如 'name'
page1.php提交后,会转到page2。
然后在page2.php中经过一些处理后,应该需要自动提交到page3.php(page3.php在另一个服务器)
最后,当我在 page3.php 中打印 $_POST 变量时,我需要获取变量 'name'
【问题讨论】:
标签: php
你可以把它贴在session
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
?>
或者你可以在 page2.php 上的隐藏变量中传递它们,如果它有一个表单...
【讨论】:
你会想要查看sessions。
如果你在 POST 中需要它们,试试这个:
$display = "";
$saveFields = array('one', 'two'); // whitelist of fields to add to the form hidden
foreach ($_POST as $key => $val) {
if (!empty($val) && in_array($key, $saveFields))
$display .= '<input type="hidden" name="'.$key.'" value="'.$val.'" />';
}
echo $display;
应该能带你去你想去的地方。白名单只是确保不注入不需要的随机东西。
【讨论】:
(1) 选项也是在 page2 上添加隐藏输入。
(2) 选项是将page1名称中的值设置为会话并在page3上使用它
【讨论】:
有几种解决方案:
在简单的情况下,将参数作为 GET 参数 page2.php?name=... 或使用隐藏表单字段是最好的解决方案
【讨论】:
这对我来说似乎很简单,第一页有一个名为 name 的隐藏值。第 2 页应检索帖子 $_POST['name'] 并将其作为隐藏字段打印在第 2 页上。将其发布到第 3 页后,您可以使用 $_POST['name'] 相同的方式检索它。
实际上,如果数据完全相同并且一直被带到第 3 页,那您为什么还需要它?不能只在第 3 页声明吗?
【讨论】:
好的,我的阅读方式是,在您的第一页上,您有一个带有表单的 UI。然后将表单提交到第 2 页进行处理。处理完成后,如果您愿意,您希望将用户重定向到另一个站点(或服务器,不一定要有所作为)。
如果我没看错,这就是你应该做的;而不是使用 header();函数 (php),打印一个带有隐藏表单的空白页面,其中包含您要发送的所有详细信息,并使用 javascript 模拟用户“提交”表单。