PHP转发数据发布

Lun*_*nar 10 php

我试图在不使用cURL的情况下将数据从一个页面转发到另一个页面,这可能吗?

目前我已经尝试过了

header('HTTP/1.1 307 Temporary Redirect');
header('Location: new-location.php');
Run Code Online (Sandbox Code Playgroud)

这很好用,但是给出了一个愚蠢的弹出框,任何其他方法?

我尝试过使用curl但没有任何反应,不确定它是否在我的服务器上启用了!

Sal*_*bas 12

我认为以下是实现这一目标的唯一可行方法,而不是使用位置标头重定向,发送此html: -

<!DOCTYPE html>
<html>
    <body onload="document.forms[0].submit()">
        <form action="new-location.php" method="post">
            <?php foreach( $_POST as $key => $val ): ?>
                <input type="hidden" name="<?= htmlspecialchars($key, ENT_COMPAT, 'UTF-8') ?>" value="<?= htmlspecialchars($val, ENT_COMPAT, 'UTF-8') ?>">
            <?php endforeach; ?>
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • @stefgosselin:那么你建议用PHP编写什么才能转发POST数据? (3认同)

小智 12

您可以使用以下内容将发布数据转发到另一个URL.请注意,响应是在$ data变量中捕获的,您可以使用它来执行任何操作.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.domain.tld/urltopostto.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
$data = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)