Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Brak przekierowania do pliku za pomocą curl
Forum PHP.pl > Forum > PHP
Kris Groove
Witam smile.gif

Mam problem ze skryptem pobierania biggrin.gif gdyż ostatecznie nie wywołuje pliku tylko komunikat: 'HTTP/1.1 400 Bad Request'

  1. <?php
  2. if(isset($_GET['id']) && !empty($_GET['id'])) {
  3.  
  4. $url = 'http://netload.in/'.$_GET['id'].'.htm';
  5.  
  6. $login = '###';
  7. $haslo = '###';
  8.  
  9. $ch = curl_init();
  10. curl_setopt($ch, CURLOPT_URL, "http://www.netload.in/index.php");
  11. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  12. curl_setopt ($ch, CURLOPT_HEADER, 1);
  13. curl_setopt($ch, CURLOPT_POSTFIELDS, "txtuser=$login&txtpass=$haslo&txtcheck=login&txtlogin=Login");
  14. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  15. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
  16. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1');
  17. $page = curl_exec($ch);
  18.  
  19. preg_match_all('/Set-Cookie: (.*);/U',$page,$temp);
  20. $cookie = $temp[1];
  21. $cookie = implode('; ',$cookie);
  22. $ch = @curl_init();
  23. curl_setopt($ch, CURLOPT_URL, $url);
  24. curl_setopt($ch, CURLOPT_HEADER, 1);
  25. curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  26. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  27. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  28. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
  29. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1');
  30. $page = curl_exec( $ch);
  31. preg_match('/Location: (.*)/', $page, $linkpre);
  32. $URL = $linkpre[1];
  33.  
  34. $ch = curl_init();
  35. curl_setopt($ch, CURLOPT_URL, $URL);
  36. curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  37. curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
  38. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1');
  39. curl_exec($ch);
  40. curl_close($ch);
  41.  
  42. }
  43. ?>
expert
Wydaje mi się, że:
  1. curl_setopt($ch, CURLOPT_COOKIE,
powinieneś mieć jeszcze w 1szym cURL.

A co do tego czy dobrze operujesz funkcją CURLOPT_COOKIE to się nie wypowiem, bo nigdzy się nia nie bawiłem. Zawsze to robiłem na plikach
  1. curl_setopt($ch, CURLOPT_COOKIEFILE, '_cookie_file1');// zapis do pliku
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, '_cookie_file2');// odczyt z pliku

Ja to zawsze robiłem tak, że na zmianę odczytywałem 1 plik cookie zapisany w poprzednim poleceniu, a zapisywałem do 2giego, potem 2gi odczytywałem (w kolejnym poleceniu) i zapisywałem do 1szego itd. Może można to wszystko robić na 1-dnym pliku, nie próbowałem, jak działą dobrze to po co zmieniać tongue.gif
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.