PHP - 通过 POST 重定向和发送数据

2022-08-30 10:27:33

我有一个在线网关,需要提交带有隐藏字段的HTML表单。我需要通过没有任何HTML表单的PHP脚本执行此操作(我有数据库中隐藏字段的数据)

要执行此操作,请通过 GET 发送数据:

header('Location: http://www.provider.com/process.jsp?id=12345&name=John');

并且要通过POST发送数据?


答案 1

你不能使用PHP做到这一点。

正如其他人所说,您可以使用cURL - 但随后PHP代码成为客户端而不是浏览器。

如果你必须使用 POST,那么唯一的方法是使用 PHP 生成填充的表单,并使用 window.onload 钩子调用 javascript 来提交表单。


答案 2

下面是解决方法示例。

function redirect_post($url, array $data)
{
    ?>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript">
            function closethisasap() {
                document.forms["redirectpost"].submit();
            }
        </script>
    </head>
    <body onload="closethisasap();">
    <form name="redirectpost" method="post" action="<? echo $url; ?>">
        <?php
        if ( !is_null($data) ) {
            foreach ($data as $k => $v) {
                echo '<input type="hidden" name="' . $k . '" value="' . $v . '"> ';
            }
        }
        ?>
    </form>
    </body>
    </html>
    <?php
    exit;
}

推荐