2012-06-17 188 views
2

我目前正在嘗試編寫一個腳本,該腳本將使用cURL連接到站點。使用cURL登錄站點

我lookod爲做到這一點的方式,並試圖餅乾,但我不知道什麼餅乾是登錄cookie ......如果有人能幫助感謝...

但我試過另一種方式。 ..使用CURLOPT_POSTFIELDS但比我發現該網站使用的登錄表單上得到我想這(什麼?!)所以:

$username="User"; 
$password="Pass"; 
$url="http://www.site.com/register/?action=login&user=".$username."&password=".$password; 
$ch = curl_init(); 
    curl_setopt ($ch, CURLOPT_URL, $url); 
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
    curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec ($ch); 
echo $result; 
curl_close($ch); 

但它沒有工作......有什麼辦法以不同方式登錄網站?該網站有「方法= GET」,但它並不真正使用...

<form method="get" action="/register/" name="connectform"> 
      <input type="hidden" name="action" value="login"/><input type="hidden" name="returnpage" value=""/> 
      <ul class="login_form"> 
       <li><label>login :</label> <input type="text" name="login_login" maxlength="24" value="" class="input2"/><span class="error"></span></li> 
       <li><label>Password :</label> <input type="password" name="login_password" maxlength="24" value="" class="input2"/><span class="error"></span></li> 
      </ul> 
      <div class="login_button" style="display:inline-block"> 
       <a class="small_button" onclick="javascript:document.connectform.submit()"><span>Connect to my account</span></a> 
       <input type="submit" style="display:none" /> 
      </div> 
      </div> 
      </form> 

我該怎麼辦? 我不在乎這些方式,你會幫助我,但我更喜歡餅乾的方式...... 非常感謝!

回答

3

嘗試用以下網址:

$url = 'http://www.site.com/register/?action=login&login_login='.$username.'&login_password='.$password; 

還添加這些選項:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return the content (often default) 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // follow redirects 

如果你想獲得需要上面的登錄其他網頁,使用下列選項:

curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); // send saved cookies 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');  // save cookies 

解決方案:請看下面的評論。

+0

是的,我之前做過,當我在這裏寫下時,我只是編輯了名字。 –

+0

你能告訴我們你要登錄哪個頁面嗎?我想觀看網絡活動,以便我可以幫助你。或者直接使用最受歡迎的瀏覽器中包含的開發人員工具(如Google Chrome;按F12,然後轉到網絡並登錄到該頁面)。 – DragonWork

+0

謝謝DragonWork!我查看了網絡部分,並找到了解決方案!我忘了其中一個領域。 –