2010-03-27 56 views
2

UPDATE:解決如何使用PHP cURL檢索驗證碼並保存會話?

大家好,我知道了,只是保存的Cookie 到臨時文件,並重新提交形式 捲曲,並設置與以前 臨時文件餅乾:)感謝所有爲響應:)

這是我工作的代碼

$ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url_register); 
     curl_setopt($ch, CURLOPT_USERAGENT, $this->useragent); 
     curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  
     $out['result'] = curl_exec($ch); 
     $out['error'] = curl_error($ch); 
     $out['info'] = curl_getinfo($ch); 
     curl_close($ch); 

而對於接下來的捲曲只需使用CURLOPT_COOKIEFILE這樣

/* fetch captcha url with existed cookie */ 
      $ch = curl_init($captcha_url); 
      curl_setopt($ch, CURLOPT_USERAGENT, $this->useragent); 
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
      curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie); 
      curl_setopt($ch, CURLOPT_FILE, $fp); 
      $out2['result'] = curl_exec($ch); 
      $out2['error'] = curl_error($ch); 
      $out2['info'] = curl_getinfo($ch); 
      curl_close($ch); 

大家好,

我是創建一些腳本通過PHP捲曲提交的內容。首先獲取會話和驗證碼,用戶必須提交驗證碼才能最終提交。

問題是我無法得到驗證碼,我已經有這個代碼,並儘量的preg_match獲取圖像標籤,並將其返回

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2'); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_COOKIE, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "1"); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "1"); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  
    $result = curl_exec($ch); 
    curl_close($ch); 

,但沒有運氣,我試圖提交頁面http://abadijayaiklan.co.cc/pasang-iklan/

我希望有人能幫助我:)

感謝和問候

+3

是不是一個驗證碼的點,以防止你試圖? – 2010-03-27 01:21:51

+0

如果您發現解決方案 - 只是發佈一個答案,您張貼在評論中,並接受它,所以這個問題將不會顯示爲未答覆 – llamerr 2013-01-07 10:21:26

+0

Ferri請你分享核心PHP什麼會來代替$ this-> cookie和$ this-> useragent以及curl的步驟到底是什麼,因爲兩個curl剛剛混合起來,我需要知道我們需要先獲取頁面,然後將captcha或獲取captcha與頁面一起 – 2014-08-08 15:50:27

回答

0

從PHP手冊上curl_setoptCURLOPT_COOKIEFILECURLOPT_COOKIEJAR都應該指定一個文件名。你有他們設置爲'1'(這可能是有效的,但那是你的意圖?)

+0

大家好,我已經知道了,只需將cookie保存到臨時文件,然後用curl重新提交表單並使用之前的臨時文件設置cookie即可:) 感謝所有回覆:) – 2010-03-31 11:23:59

+1

Ferri,您能分享代碼嗎?謝謝:D – 2011-01-16 08:27:59

+0

Goxia,我已經更新了我的問題:) – 2013-02-11 11:14:09