Witam,
mam następujący kod do logowania się przez cURL na rapidshare:

  1. $curl = curl_init('https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi');
  2. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  3. curl_setopt($curl, CURLOPT_HEADER, 0);
  4. curl_setopt($curl, CURLOPT_POST, true);
  5. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  6. curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
  7. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  8. curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");
  9. curl_setopt($curl, CURLOPT_COOKIEJAR, "cookiefile"); # SAME cookiefile
  10. curl_setopt($curl, CURLOPT_POSTFIELDS, "login=TWOJLOGIN&password=TWOJEHASLO");
  11. curl_exec($curl);
  12. curl_close ($curl);


Chciałbym po zalogowaniu wyciągnąć z kodu strony kilka rzeczy (czas ważności, transfer).
Niestety, skrypt nie łączy mi się (po podaniu dobrych danych) - ciągłe ładowanie i ładowanie i ładowanie... aż do przekroczenia limitu czasu.

Sprawdzałem na 3 hostingach, każdy ma curl i na żadnym takie same objawy. Próby ładowania innych stron kończą się natomiast sukcesem.

EDIT:
Ok, doszedłem do tego, że coś mam nie tak z ssl w libcurl.
Mniejsza o to, w ogóle mam problem z logowaniem, inny przykład:

  1. $url = 'http://forum.jacenter.pl/ucp.php?mode=login';
  2. $post = 'login=LukasAMD&haslo=moje-haslo';
  3. $cookie = 'cookies.txt';
  4.  
  5.  
  6.  
  7. $ch = curl_init($url);
  8. curl_setopt($ch, CURLOPT_POST, 1);
  9. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  10. curl_setopt($ch, CURLOPT_HEADER, 1);
  11. //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
  12. //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
  13. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
  14. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  15. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
  16. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  18. curl_getinfo($ch);
  19. curl_exec($ch);
  20.  
  21.  
  22. if(curl_errno($ch)) {
  23. echo 'Error #' . curl_errno($ch) . ': ' . curl_error($ch);
  24. } else {
  25. echo $data;
  26. }
  27. curl_close ($ch);


Oczywiście gdy testuję, podaję prawdziwe dane. Forum oparte na phpbb3.
W odpowiedzi otrzymuję podstronę do logowania, ale bez żadnych komunikatów.
Np. podam błędne dane POST to i tak nie zwraca mi strony z takim komunikatem.

Plik cookies ma odpowiedni CHMOD, co dziwne, zapisuje tam nawet dane z sesji.
Próbowałem po takim połączeniu robić drugie, na stronę główną, już bez POSTów - no i nie zalogowało mnie, bo widzę wszystko jako gość...

Co robię źle? Przekopałem już tutorial na portalu dotyczący cURL, ale nadal nie widzę rozwiązania.