2014-03-14 156 views
0

我有一臺履帶,我希望能夠在目標網站上提交表單。用curl發送<input name =「array [key]」>?

形式的HTML是:

<form method="post" action="http://www.hemnet.se/sok/create"> 
    <input name="search[keywords]" type="hidden" value="Uppsala"> 
    <button class="button primary" type="submit"><span>Search</span></button> 
</form> 

於是我發現了目標網站需要search[keywords]進行設置。它可能是「」或一個字符串,什麼都可以。但它需要設置爲顯示搜索結果。

我給這家捲曲:

$url = 'http://www.hemnet.se/sok/create'; 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data')); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 'search[keywords]=Uppsala'); 
$content = curl_exec($ch); 
curl_close($ch); 

我曾嘗試POSTFIELDS的許多不同的組合。例如:

$fields = array('search' => array('keywords' => 'Uppsala')); 
$fieldset = http_build_query($fields); 

有沒有http_build_query()。一切都失敗。我也嘗試過改變通話的內容類型而沒有任何成功。所有的嘗試都會導致目標網站無法識別要設置的後置字段,然後將我重定向到其根目錄/着陸頁。

我在做什麼錯?

+0

給我們的表單頁面 - 無法找到它.... –

回答

0

用途:

curl_setopt($ch, CURLOPT_POSTFIELDS, array('search[keywords]' => 'Uppsala'); 
+0

不是爲我工作。它真的爲你工作還是隻是猜測? –

+0

@MarcusLind不是一個猜測,它是在我的環境中工作。 – xdazz

+0

那麼你得到一個搜索結果頁面,並在該區域列出房地產對象? (像這樣:http://i.imgur.com/2FIzfeG.png) 對我來說,我被重定向到根頁面(www.hemnet.se)。 你可以上傳/分享你完整的捲髮代碼嗎? –

0

我想這應該做的工作:

$fields = array('search[keywords]' => 'Uppsala'); 
$fieldset = http_build_query($fields); 
+0

不適合我。對你起作用嗎? –

0

在你的榜樣,你是不是做multipart形式發佈,而這是錯誤的。所以只要刪除這一點,它會爲你工作:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data')); 
相關問題