2010-05-10 152 views
0
$ua_s = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14'; 
$c = curl_init($the_url); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($c, CURLOPT_USERAGENT, $ua_s); 
curl_setopt($c, CURLOPT_POST, true); 
curl_setopt($c, CURLOPT_POSTFIELDS, $post_string); 
$cont = curl_exec($c); 
curl_close($c); 

發送所有必填字段,但未能正確提交。寫HTML表單測試 - 一切都很好,如果在瀏覽器這樣做:爲什麼我不能通過php的curl提交表單?

回答

2

目標腳本可能需要一定的cookie存在或引用是同一個域的腳本中。

0

你的$ post_string是怎麼樣的?它是否被urlencoded?

+0

使用數組而不是urlencoded字符串會更好。然後curl負責將其編碼爲一個字符串。 – ThiefMaster 2010-05-10 09:08:59

+0

這取決於。如果使用字符串,則內容將作爲'application/x-www-form-urlencoded'發送,而使用數組創建'multipart/form-data'內容。在大多數情況下,這並不重要,但有些服務器無法正確處理多部分/表單數據。此外,x-www-form-urlencoded是POST的默認值(除非您正在傳輸文件)。 – 2010-05-10 09:24:26

相關問題