0

我正在尝试在 php 中获取一些变量并将用户重定向到第三方站点,并将变量作为 post vars 发送。我知道使用 cookie 可能会更容易,但第三方已经设置为处理帖子。有人对如何做到这一点有任何建议吗?

4

5 回答 5

2

您可以使用几种技术。一种是遍历 POST 变量并添加到表单并重新提交表单,可能使用 Javascript onLoad。

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

另一种选择是使用 PHP 和 cURL 并将数据发送到远程站点:

url_setopt($ch, CURLOPT_POSTFIELDS, $_POST);

http://www.php.net/manual/en/function.curl-setopt.php

于 2012-07-24T19:25:42.807 回答
1

在 PHP 页面中,使用 cURL 打开到第三方网站的连接并使用此功能:

curl_setopt($Curl, CURLOPT_POST, 1); 
curl_setopt($Curl, CURLOPT_POSTFIELDS, 'field1=allo&field2=fsdfsd');

第三方将收到带有真实 POST 请求的请求。您还可以从第三方网站阅读答案。

于 2012-07-24T19:24:47.630 回答
0

需要从用户浏览器发送帖子。一种常见的方法是使用一个中间页面,其中包含一个带有隐藏输入元素的表单,其中包含您要发布的变量,然后使用 Javascript 在加载时自动提交表单。

于 2012-07-24T19:24:33.167 回答
0

一些谷歌搜索表明,除了可怕的表单混乱之外,cURL 是要走的路。我不是专家,但这个链接http://www.electrictoolbox.com/php-curl-form-post/和 php cURL 参考应该会有所帮助。

于 2012-07-24T19:25:27.160 回答
0

信息不足,但也许您可以在 javascript (jQuery) 的帮助下使用表单发送它

<script>
$(function(){
    $('#form').submit();
});
</script>
<form action="external.url/page.php" action="post" id="form">
<input type="hidden" name="variable" value="value" />
</form>
于 2012-07-24T19:27:13.857 回答