Re: [請益] 有關HTTP POST Request的問題

看板PHP作者 (Cheer UP!)時間18年前 (2007/04/27 00:44), 編輯推噓5(508)
留言13則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《tomelf (Cheer UP!)》之銘言: : 小弟想要寫一個功能,能夠自動擷取Http Request的回傳頁面 : 舉例來說,任意一個有Query Form的網頁(如http://www.yahoo.com/) : 我要抓出網頁中的form,並且自動填入資料,擷取回傳頁面 : 當form的傳送method=get時,我知道怎樣直接取得回傳頁面, : 但是當form method=post時就會出問題 : (因為回傳頁面常常不是form action中的那個頁面) : 我有google過相關方法,大部分都只有提到如何利用PHP或javascript去對某個 : 頁面做get或post的request,但都沒有提到怎樣處理以上的問題。 : 想請問各位高手,有沒有什麼好方法可以解決這個問題,萬分感謝Orz >回應alpe: 例如http://lyricsearch.net/這個網頁,裡面有一個form, aciton=http://www.optinpro.com/scripts/subscribe.asp, method=POST 我現在是用PEAR裡的html_request來做,對於POST的作法如下:(程式碼略微修改過) $dataKey: POST參數的key值陣列 $data: 存POST參數的陣列 if($form_method=='post'){ for($i=0;$i<count($dataKey);$i++){ $req->addPostData($dataKey[$i],$data[$dataKey[$i]]); } if (!PEAR::isError($req->sendRequest())) { return $req->getResponseBody(); }else{ echo 'HTTP Post error: Cannot using this url!<br>'; } } 這樣會用POST傳遞參數到網站並且回傳action網址內容。 然而上面的回傳不是我要的,真正的回傳網頁會他會自動redirect到 http://search.lyrics.astraweb.com/?word=ricky+martin去 這個才是我真正要的頁面 >回應MrMarcus: CURL中有可以解決這方法的library嗎?我會去google看看的,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.220.169 ※ 編輯: tomelf 來自: 140.115.220.169 (04/27 00:46)

04/27 00:48, , 1F
Error @@ 好像要login耶
04/27 00:48, 1F
※ 編輯: tomelf 來自: 140.115.220.169 (04/27 00:52)

04/27 00:55, , 2F
不好意思,剛剛在修文,在試一次網址看看吧!
04/27 00:55, 2F

04/27 00:55, , 3F
search.lyr 是用GET的.
04/27 00:55, 3F

04/27 00:56, , 4F
但如果是抓http://lyricsearch.net/的form會是POST, 然後可
04/27 00:56, 4F

04/27 00:57, , 5F
能lyricsearch自己做了一些處理,才用GET redirect到另一個
04/27 00:57, 5F

04/27 00:56, , 6F
curl 可以 處理 header redirect, 不過js location 就不行
04/27 00:56, 6F

04/27 00:57, , 7F
站去 如果程式光看lyricsearch網站看不到redirect的地方
04/27 00:57, 7F

04/27 00:59, , 8F
恩恩,我會去找找curl裡面hear redirect的方法
04/27 00:59, 8F

04/27 00:59, , 9F
那頁的確用GET傳值. 你可以抓package下來看看
04/27 00:59, 9F

04/27 01:02, , 10F
你看錯form了 =_=||| form target="_new" acrion="http://s"
04/27 01:02, 10F

04/27 01:03, , 11F
POST 那個是 Email Address 的input
04/27 01:03, 11F

04/27 01:05, , 12F
裝個firfox 用 FireBug 去找. 會快狠準
04/27 01:05, 12F

04/27 01:11, , 13F
喔喔…瞭解!謝謝你的解答^^
04/27 01:11, 13F
文章代碼(AID): #16CDRXD2 (PHP)
討論串 (同標題文章)
文章代碼(AID): #16CDRXD2 (PHP)