【问题标题】:Post variables to another PHP file [duplicate]将变量发布到另一个 PHP 文件 [重复]
【发布时间】:2012-07-02 14:28:52
【问题描述】:

可能重复:
To convert a data obtained through URL to post variables

我在 $_GET 数组中收到一些值,我想将用户 重定向 到另一个 PHP 文件,但我需要将我的 GET 数组中的所有值作为 POST 请求发送到该文件,这可能吗?怎么样?

【问题讨论】:

    标签: php


    【解决方案1】:

    是的,你可以使用 curl 来做到这一点。

    http://jm2.php.net/curl

    curl_setopt($ch, CURLOPT_POST, true); 是您需要的。

    【讨论】:

      【解决方案2】:

      我会使用 Curl 库。你可以找到一个样本HERE

      【讨论】:

      • 请注意,这不会重定向浏览器或任何东西,它只会发出 post 请求。
      • 有没有办法同时重定向用户?
      • 这取决于您所说的“重定向”。 curl 执行可以返回 HTML 内容,这些内容可以显示给用户。这不是“重定向”,但用户会看到 POST 查询结果。
      【解决方案3】:

      您不能代表浏览器发出发布请求。所以你不能将用户重定向到另一个文件,并期望它是一个 POST 请求。

      正如 Arcadien 所说,您可以使用 Curl 发出 POST 请求,但用户不会注意到任何内容,因为请求是从您的服务器发送到您的服务器的。

      【讨论】:

        【解决方案4】:

        如果您打算进行实际重定向(用户的浏览器实际上是 加载 目标 URL),那么我认为最干净的方法是使用 javascript;基本的想法是写一个自我提交的表格。使用所有 get 变量作为输入 type="hidden" 预先填充表单,然后编写一个小的卸载处理程序来提交它。

        如果您不关心用户代理加载新 URL,并且另一个文件在您的服务器上,但它只希望这些变量在 POST 而不是 GET 中,您可以复制这些值并包含该文件$_POST = $_GET;

        【讨论】:

        • 这是一种解决方法,问题是我不想在 URL 中向用户显示这些值。
        • 如果您已经在 GET 中拥有它们,它们就在那里。然后,如果您使用 POST 的自动提交表单,它们将不会在第二个页面加载的 URL 中(这几乎会立即发生)
        猜你喜欢
        • 2020-12-29
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多