Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Curl] Logowanie i cookie w serwisie Fileserve
Forum PHP.pl > Forum > PHP
pitu
Witam

Robię skrypt do pobierania plików z serwisu Fileserve.com. Jednak mam problem z cookie, zalogowałem się po przez Curl i pobrałem cookie. Przekazałem cookie po przez Curl odwiedzając stronę z plikiem, niestety wyświetlając stronę widzę, że nie loguje mnie.

Mój kod:

  1. <?php
  2. /*
  3. ini_set('display_errors', 1);
  4. ini_set('log_errors', 1);
  5. ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
  6. error_reporting(E_ALL);
  7. */
  8. $adres = 'http://fileserve.com/login.php';
  9. $login = 'mojloginpremium';
  10. $haslo = 'mojehaslopremium';
  11.  
  12. $post = array();
  13. $post["autoLogin"] = true;
  14. $post["loginUserName"] = $login;
  15. $post["loginUserPassword"] = $haslo;
  16. $post["loginFormSubmit"] = "LOGIN";
  17.  
  18. $ch = curl_init();
  19. curl_setopt($ch, CURLOPT_URL, "http://fileserve.com/login.php");
  20. curl_setopt($ch, CURLOPT_POST, 1);
  21. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  22. curl_setopt($ch, CURLOPT_HEADER, 1);
  23. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  24. curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1);
  25. curl_setopt($ch, CURLOPT_REFERER, "http://www.fileserve.com/");
  26. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  27. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
  28. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
  29. $site1 = curl_exec($ch);
  30. curl_close($ch);
  31.  
  32. trim($site1);
  33.  
  34. list($z1,$z2) = explode('Set-Cookie:', $site1);
  35. list($y1,$y2) = explode('; expires', $z2);
  36. preg_match("/cookie=[a-zA-Z0-9%]+/i", $result, $matches);
  37. $cookie2= $matches[0];
  38.  
  39.  
  40. $ch = @curl_init();
  41. $url = 'http://www.fileserve.com/file/tGzysvx/test.txt';
  42. curl_setopt($ch, CURLOPT_URL, $url);
  43. curl_setopt($ch, CURLOPT_HEADER, 1);
  44. curl_setopt($ch, CURLOPT_COOKIE, $y1);
  45. curl_setopt($ch, CURLOPT_COOKIE, $cookie2);
  46. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1');
  47. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  48. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  49. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
  50. //curl_setopt($ch, CURLOPT_INTERFACE, $ip );
  51. echo $page = curl_exec( $ch);
  52. curl_close($ch);
  53.  
  54. ?>


Mogę udostępnić na PW dane do konta jeżeli ktoś chciałby pomóc i sprawdzając u siebie kod.
cycofiasz
Po co manualnie obsługujesz cookies skoro w curl wystarczy dać:

  1. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiepath);
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiepath);


?
krysia5522
Skorzystaj z api fileserve prze logowanie nie pobierzesz wielkosci pliku a jak ci się uda to i tak będą problemy z tym
pitu
Cytat(cycofiasz @ 22.12.2011, 20:49:44 ) *
Po co manualnie obsługujesz cookies skoro w curl wystarczy dać:

  1. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiepath);
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiepath);


?


Dzięki teraz jest OK.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.