【问题标题】:How to get post values from first page to third page ,as post如何从第一页到第三页获取帖子值,作为帖子
【发布时间】: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


    【解决方案1】:

    你可以把它贴在session

    <?php
    session_start();
    if (!isset($_SESSION['count'])) {
      $_SESSION['count'] = 0;
    } else {
      $_SESSION['count']++;
    }
    ?>
    

    或者你可以在 page2.php 上的隐藏变量中传递它们,如果它有一个表单...

    【讨论】:

    • 感谢您的回复但实际上第三页'page3.php'位于另一台服务器另外,我需要获取参数,当我打印$_POST时
    • @user310849:该信息应该包含在您的原始问题中。无论哪种方式,这个答案的第二部分仍然可以解决你的问题:“如果它有一个表单,你可以在 page2.php 上的隐藏变量中传递它们。”在 page2 上放置一个带有隐藏值的表单,然后将 javascript POST 到 page3。
    • 是的,我明白了。让我知道不使用javascript(仅使用php)我们可以做到这一点吗?
    【解决方案2】:

    你会想要查看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;
    

    应该能带你去你想去的地方。白名单只是确保不注入不需要的随机东西。

    【讨论】:

    • 感谢您的回复但实际上第三页'page3.php'位于另一台服务器另外,我需要获取参数,当我打印$_POST时
    • 那么,只需将它们作为隐藏字段添加到您的表单中。只要知道表单数据很容易修改,IE 有人可能只是将数据发送到 page3.php 而不必通过 page1 和 page2,因此您可能希望添加一个由两个服务器以某种方式共享的唯一令牌。所以是的,只需将它们添加为隐藏的输入字段。
    • 我不明白你的想法。请你解释一下我怎样才能从 page1.php 到 page3.php 获取帖子值?
    • @user310849:你对他回答的哪些具体部分有理解困难?
    【解决方案3】:

    (1) 选项也是在 page2 上添加隐藏输入。

    (2) 选项是将page1名称中的值设置为会话并在page3上使用它

    【讨论】:

    • 感谢您的回复但实际上第三页'page3.php'位于另一台服务器另外,我需要获取参数,当我打印$_POST时
    【解决方案4】:

    有几种解决方案:

    • PHP 会话
    • cookies
    • 将参数作为 GET/POST 参数传递
    • 在数据库中存储数据

    在简单的情况下,将参数作为 GET 参数 page2.php?name=... 或使用隐藏表单字段是最好的解决方案

    【讨论】:

    • 感谢您的回复但实际上第三页'page3.php'位于另一台服务器另外,我需要获取参数,当我打印$_POST时
    【解决方案5】:

    这对我来说似乎很简单,第一页有一个名为 name 的隐藏值。第 2 页应检索帖子 $_POST['name'] 并将其作为隐藏字段打印在第 2 页上。将其发布到第 3 页后,您可以使用 $_POST['name'] 相同的方式检索它。

    实际上,如果数据完全相同并且一直被带到第 3 页,那您为什么还需要它?不能只在第 3 页声明吗?

    【讨论】:

      【解决方案6】:

      好的,我的阅读方式是,在您的第一页上,您有一个带有表单的 UI。然后将表单提交到第 2 页进行处理。处理完成后,如果您愿意,您希望将用户重定向到另一个站点(或服务器,不一定要有所作为)。

      如果我没看错,这就是你应该做的;而不是使用 header();函数 (php),打印一个带有隐藏表单的空白页面,其中包含您要发送的所有详细信息,并使用 javascript 模拟用户“提交”表单。








      document.getElementById("formButton").click()

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      相关资源
      最近更新 更多