2011-08-07 139 views
0

我試圖使用cURL登錄到Yammer。出於某種原因,我無法讓網站接受密碼。您可以嘗試轉到此網址https://www.yammer.com/login?login=username%40domain.com&password=password。有什麼我做錯了嗎?用戶名(登錄)顯示了罰款,但不會密碼..使用POST登錄到Yammer

編輯:

這裏是我的代碼

<?php 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookie.txt"); 
curl_setopt($ch, CURLOPT_URL,"https://www.yammer.com/login"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=" . urlencode("[email protected]") . "&password=" . urlencode("password")); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64)  AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30"); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HEADER, 1); 

ob_start(); 
curl_exec ($ch); 
ob_end_clean(); 

curl_close ($ch); 
unset($ch); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookie.txt"); 
curl_setopt($ch, CURLOPT_URL,"https://www.yammer.com/"); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64)  AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30"); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, 1); 

$buf2 = curl_exec ($ch); 

curl_close ($ch); 

echo $buf2; 
?> 

回答

1

我看看來源爲Yammer的登錄頁面:

<form action="/session" id="login-form" method="post"> 
    <fieldset> 
     <input class="initial-focus" id="login" name="login" tabindex="1" type="text" /> 
     <input id="password" name="password" tabindex="2" type="password" /> 
    </fieldset> 

</form> 

正如你所看到的,登錄表單的方法設置爲「post」。您在問題中提供的URL將發出HTTP GET請求。爲了在登錄時模擬瀏覽器,您需要告訴Curl發出POST請求。

請參閱this question瞭解幾個可以工作的選項 - 您也可以找到Curl的手冊頁有用。

編輯:謝謝你提供額外的信息。我只好再看看頁面的源代碼,並發現什麼可能導致您的問題 - 有形式的另一個輸入:

<input name="authenticity_token" type="hidden" value="YqY07+XHzPIoY9PBLhYIQy3uQstSCJqC79Vn5Ot/njw=" /> 

看起來你首先需要再拍捲曲請求,檢索該值字段,然後將其添加到您提交的帖子字段中。

+0

即時編輯我的原始問題,並提供我的代碼..我做錯了嗎? – DvideBy0

+0

完全沒有 - 您可以提供的信息越多越好。 – minimalis

+0

好吧我轉貼了我的代碼 – DvideBy0