2011-08-06 70 views
5

任何人都可以幫助我怎麼做才能使用PHP和cURL將數據從表單(POST)發送到URL?如何使用PHP和cURL提交POST數據?

使用cURL,我想要完成的就是發送數據,我不想被重定向,也不會得到任何輸出(HTML或TEXT)輸出數據。

很高興知道數據是否已成功提交或不處理錯誤或重定向。

附加信息。我認爲我被重定向的原因是因爲一旦我執行了cURL,作爲第三方網站的目標頁面就會有一個重定向,以確認用戶他們的數據已經收到,並且由於某種原因,當我使用cURL發送我的數據重定向它會影響我的頁面,因此我的頁面也會重定向到他們的確認站點。

謝謝大家。

示例代碼:

$sub_req_url ="http://domain.com/util/request"; 
$ch = curl_init($sub_req_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=64&session=1&k=B0EA8835E&firstname=Name&lastname=Lastname&company=Company%20Name&[email protected]&work_phone=123-456-7890"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 

$resp = curl_exec($ch); 
curl_close($ch); 

我編輯這篇文章,以顯示我使用什麼樣的一個例子。我應該把代碼放在第一位。

+1

說明你的代碼。聽起來像問題在那裏。你的問題沒有具體的信息。 (也「任何人都可以幫助」是不是一個技術調查太多。) – mario

+0

那麼...你不想要你張貼的網站重定向?大多數登錄頁面會在您成功登錄後將您重定向到已驗證的主頁。也就是說,如果重定向正在改變您正在瀏覽的頁面的外觀,聽起來好像您沒有正確處理cURL響應。正如馬里奧所說,代碼將有幫助 – wolv2012

+1

[傳遞$ _POST值與cURL](http://stackoverflow.com/questions/28395/passing-post-values-with-curl) – mario

回答

6
function post($requestJson) { 

    $postUrl = $this->endpoint."?access_token=".$this->token; 

    //Get length of post 
    $postlength = strlen($requestJson); 

    //open connection 
    $ch = curl_init(); 

    //set the url, number of POST vars, POST data 
    curl_setopt($ch,CURLOPT_URL,$postUrl); 
    curl_setopt($ch,CURLOPT_POST,$postlength); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$requestJson); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    $response = curl_exec($ch); 

    //close connection 
    curl_close($ch); 

    return $response; 
} 
+0

我仍然被重定向,我相信是由於我正在發送數據的頁面。似乎一旦該頁面(第三方網站)收到我的數據,如果數據被批准,它將重定向到確認頁面。有沒有辦法只發送數據並顯示我的自定義確認頁面?而不是他們的頁面? –

+0

感謝您的回覆 –

0

任何人都可以幫助我怎麼做將數據從表單(POST)發送到使用PHP和cURL的URL?

請搜索該網站和/或發佈您的代碼如何做到這一點。看起來像做實際的POST請求不是你的具體問題。如果是這樣,看看此相關的問題:Passing $_POST values with cURLphp curl: i need a simple post request and retrival of page example

使用捲曲,我要做到的是發送數據,我不希望被重定向,也沒有得到任何輸出類型(HTML或TEXT)只提交數據。

假設$ch是您的捲曲處理:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); 

的選項的含義是described on the PHP manual page。 然後做你的curl_exec並檢查返回值,如果請求是成功或沒有。

一個可能與該部分的問題是:Make curl follow redirects?

相關問題