我想在PHP中採取一些變量,並將用戶重定向到第三方網站,並將變量作爲post vars發送。我知道這可能會更容易與cookie,但第三方已經成立,以處理帖子。有沒有人有任何建議如何做到這一點?PHP Post vars第三方
回答
您可以使用一些技巧。一個是遍歷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和捲曲以及將數據發送到遠程站點:
url_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
需要從用戶瀏覽器發送帖子。一個常見的方法是使用一箇中間頁面,該頁面包含一個隱藏輸入元素的表單,該元素包含要發佈的變量,然後使用Javascript自動提交加載的表單。
在PHP頁面,使用cURL開放給第三方網站的連接,並使用此功能:
curl_setopt($Curl, CURLOPT_POST, 1);
curl_setopt($Curl, CURLOPT_POSTFIELDS, 'field1=allo&field2=fsdfsd');
的第三方將收到也是一個真正的POST請求的請求。您也可以閱讀第三方網站的答案。
這不是重定向。您可以使用curl將POST值發佈到第三方站點,但您也將通過PHP腳本接收html,該腳本必須回傳給用戶。除非你對所收到的html進行一些操作,否則像CSS/Javascript包含的東西,圖像和鏈接將無法正常工作。 – AndrewR 2012-07-24 19:28:33
@AndrewR OP只想用POST值重定向用戶。這些線做到了。另外,如果你不想讀取輸出,只需使用'curl_setopt($ Curl,CURLOPT_RETURNTRANSFER,0); '。我不明白你的觀點先生。 – 2012-07-24 19:30:58
我明白了「將用戶重定向到第三方站點,並將變量作爲後變量發送」,將用戶瀏覽器重定向到第三方站點(離開他的站點),並將數據一起傳送到HTTP POST中。也許我解釋不正確。 – AndrewR 2012-07-24 19:35:02
一些谷歌搜索表明,除了帶有形式的可怕的事情之外,cURL還是一條路。我不是專家,但是這個鏈接http://www.electrictoolbox.com/php-curl-form-post/和php cURL參考應該會有所幫助。
沒有足夠的信息,但也許你可以把它使用窗體的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>
- 1. Subrequests with post vars
- 2. 如何從第三方POST通過GET
- 3. PHP驗證 - 通過HTTP POST值轉發給第三方結賬
- 4. php session vars
- 5. PHP第三方午餐訂購
- 6. 第三方API
- 7. 在PHP中設置第三方Cookie
- 8. PHP猴修補第三方類
- 9. 向Zend Framework添加第三方PHP類
- 10. 會話爲php和第三方訪問
- 11. 第三方iOS SDKs?
- 12. c#第三方skype
- 13. 從第三方庫
- 14. 從第三方源
- 15. Artifactory第三方jar
- 16. laravel,vuejs和第三方api's
- 17. 從第三方庫解耦
- 18. 使用HTTParty post連接到第三方API並獲取,Ruby
- 19. rails在post請求中向第三方發送參數
- 20. 第三方可以讀取HTTPS POST數據嗎?
- 21. 第三方評論系統
- 22. 從第三方發送郵件給第三方
- 23. jQuery驗證使用第三方插件
- 24. NPAPI加載第三方DLL
- 25. Android AAR第三方罐子
- 26. 包含第三方Jars ANT
- 27. 使用第三方SMTP
- 28. socketstream和第三方回購
- 29. 包裝第三方DLL
- 30. 重寫第三方組件
加載方式的表單工作完美,適合我正在做的事情。感謝大家的幫助。 – 2012-07-24 20:01:04
很高興能得到幫助,並認爲其中的一個可以解決問題。祝你的項目好運。 – 2012-07-24 20:17:44