我試圖從這個站點下載音樂循環文件:looperman.com。我已經註冊爲用戶,並且正在嘗試使用cURL下載循環。當你登錄到looperman.com時,有一些cookies被設置,但是通過排除,我注意到服務器只有在登錄時纔會看到你被命名爲'loopermanlooperman'。cURL cookie值
我已經抓住了該cookie的值,並將其設置爲一個變量。然後我把它傳遞給網站,像這樣:
$sessid = 'somehashedvaluehere';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie: loopermanlooperman=$sessid;"));
curl_setopt($ch, CURLOPT_URL, "http://www.looperman.com/loops/detail/$pageID");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo $response;
當我呼應的反應,我看到的cookie尚未確定,而該網站仍然認爲我還是沒有登陸什麼我做錯了什麼? Looperman使用CodeIgniter構建。我想知道他們是否有一些保護措施來防止設置這樣的Cookie?
/// UPDATE ///
我試圖COOKIE_JAR和CURLOPT_COOKIE。 Cookie仍未設置。我從另一個Stack Overflow帖子中發現了這個腳本,它似乎讓我獲得了大部分的途徑,但仍然設置了cookie。那就是:
$loginUrl = 'http://www.looperman.com/account/login/';
$loginFields = array('user_email' => '[email protected]', 'user_password' => 'password');
getUrl($loginUrl, 'post', $loginFields);
//now you're logged in and a session cookie was generated
$remote_page_content = getUrl('http://www.looperman.com/loops/detail/200');
echo $remote_page_content;
function getUrl($url, $method='', $vars='') {
$ch = curl_init();
if ($method == 'post') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'D:\wamp2\www\sandbox\cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'D:\wamp2\www\sandbox\cookie.txt');
$buffer = curl_exec($ch);
curl_close($ch);
return $buffer;
}
當這種回報,d的內容:\ wamp2 \ WWW \沙盤\ cookie.txt是:
Netscape HTTP Cookie File http://curl.haxx.se/rfc/cookie_spec.html This file was generated by libcurl! Edit at your own risk. .looperman.com TRUE / FALSE 1329245288 loopermancspr 147f3f08a0b50f7aa527789e360abbc8 .looperman.com TRUE / FALSE 1328467688 loopermanlooperman rX1UOdqyPEKkZ7HT0x8dSLk7g9yf5sSmg%2B7zj66hLM9LSmS1z4nqFO2zkEkqsUqKEwNMvEiExqSKoU2%2BfVsxlf3C9VyucMWt41TJVDtElUUIQrZxv0BmwZYP6JCJrY7wcT1%2FO7kKxRu8YI97YD%2BWdxX3jnWu2Zme9jg%2FMggp3%2Be%2BY%2FFiAorh36FR1zTbSY66VJVj7268WgMy6KNdJ1DxieypwaMb2HYGpBMsQRxcI6RawnOIEdjbaPKYuf8hVy40
但looperman仍然沒有看到我的登錄:(
試試這取代[餅乾罐](http://icfun.blogspot.com/2009/04/php-how-to-use-cookie-jar-with-curl.html) – hackartist 2012-02-04 18:07:05
我上面的編輯使用CURLOPT_COOKIEJAR和CURLOPT_COOKIEFILE。似乎沒有效果。 – 2012-02-04 18:58:11