Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Brak przekierowania do pliku za pomocą curl
Kris Groove
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 2.12.2011

Ostrzeżenie: (0%)
-----


Witam (IMG:style_emoticons/default/smile.gif)

Mam problem ze skryptem pobierania (IMG:style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
expert
post
Post #2





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


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ć (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 01:25