我正在尝试在php中获取一些变量,并将用户重定向到第三方网站,并将变量作为post vars发送。我知道使用cookie可能会更容易,但第三方已经设置好处理帖子。有没有人对如何做到这一点有任何建议?
答案 0 :(得分: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);
答案 1 :(得分:1)
在PHP页面中,使用cURL打开与第三方网站的连接并使用此功能:
curl_setopt($Curl, CURLOPT_POST, 1);
curl_setopt($Curl, CURLOPT_POSTFIELDS, 'field1=allo&field2=fsdfsd');
第三方将收到请求,同时还有一个真正的POST请求。您还可以从第三方网站上阅读答案。
答案 2 :(得分:0)
需要从用户浏览器发送帖子。一种常见的方法是使用一个中间页面,其中包含一个隐藏输入元素的表单,其中包含您要发布的变量,然后使用Javascript在加载时自动提交表单。
答案 3 :(得分:0)
一些谷歌搜索表明除了可怕的形式之外,cURL是要走的路。我不是专家,但是这个链接http://www.electrictoolbox.com/php-curl-form-post/和php cURL参考应该会有所帮助。
答案 4 :(得分: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>