2011-08-06 65 views
7

我正在開發中,需要對採集的數據提交到第三方網站,在形式的形式被重定向:http://www.domain.com/page?key=value&key2=value2我如何防止用PHP捲曲

我決定使用捲曲,因爲我還沒有找到一個讓我信服的選擇。

我運行的問題是,一旦表單被提交,cURL被執行,但我被重定向到我指定的域。相反,我想將用戶重定向到我的域中的確認頁面,而不是第三方網站。

下面是我使用的代碼示例:

$URL="otherserver.domain.com"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://$URL"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "key=value2&key2=value2&key3=value3"); 
curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close ($ch); 

如何從被重定向到otherserver.domain.com預防?

如果您認爲使用cURL而不是使用cURL,請隨時告訴我們,有更好的方法將數據提交給第三方網站。

謝謝大家提前

回答

4

試試這個:

<?php 
$url = "http://***.."; 
$ch = curl_init($url); 
$opts = array(CURLOPT_RETURNTRANSFER => 1, 
      CURLOP_HEADER => 1, 
      CURLOPT_FOLLOWLOCATION => 0, 
      CURLOPT_POST => 1, 
      CURLOPT_POSTFIELDS => "foo=ba"); 
curl_setopt_array($ch, $opts); 
echo curl_exec($ch); 
?> 
+0

你能寫一個例子嗎?無論我對CURLOPT_FOLLOWLOCATION使用0還是1,我仍然會重定向。其實我得到了我指定的網址的內容。我只想提交收集到的數據 –

+0

我發現了問題,這是由於第三方網站導致重定向。 –

5
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 

不會輸出結果

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 

會忽略重定向(所以當http://google.com/接送您到https://google.us/這會忽略它)

+0

我需要從一個.php文件運行一個URL。我不需要抓住它的輸出或做任何事情。我想要做的只是調用一個URL,例如:http://www.domain.com,以便服務器接收URL的請求並執行請求。任何幫助? –