Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Curl i problem z pobraniem danych z asp
Forum PHP.pl > Forum > Przedszkole
ewelinac18
Witam, mam problem z CUrl i nie wiem jak sobie poradzić


  1. <?php
  2.  
  3. $cookie_file = 'cookie.txt';
  4. file_put_contents($cookie_file, '');
  5.  
  6. $c = curl_init();
  7. curl_setopt($c, CURLOPT_COOKIESESSION, 1);
  8. curl_setopt($c, CURLOPT_COOKIEFILE, 'cookie.txt');
  9. curl_setopt($c, CURLOPT_COOKIEJAR, 'cookie.txt');
  10. curl_setopt($c, CURLOPT_URL, 'http://xxx/Walidacja.asp');
  11. curl_setopt($c, CURLOPT_POST, 1);
  12. curl_setopt($c, CURLOPT_POSTFIELDS, 'LoginName===login===&LoginHaslo===haslo===&submit1=Logowanie'); //dane do wyslania
  13. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  14. curl_init();
  15. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  16. curl_setopt($c, CURLOPT_POSTFIELDS, 'submit1=Potwierdzam&Magazyn=1');
  17. curl_setopt($c, CURLOPT_URL, "http://xxx/izam/ZamSesjaCookie.asp");
  18. curl_init();
  19. curl_setopt($c, CURLOPT_POSTFIELDS, 'submit1=Potwierdzam&Magazyn=1');
  20. curl_setopt($c, CURLOPT_URL, "http://xxx/Sterowanie2.asp?sesjaid=0");
  21. curl_init();
  22. curl_setopt($c, CURLOPT_URL, "http://xxx/izam/Zasady.asp");
  23. curl_init();
  24. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  25. curl_setopt($c, CURLOPT_URL, "http://xxx/CenSzukaj.asp");
  26. $page = curl_exec($c);
  27. curl_close($c);
  28. echo 'Wynik: <br>'.$page;
  29.  
  30. ?>



probowałam wielu opcji
ręczne dodawanie ciasteczek tez nie pomogło
ciągle to samo

Kod
Object Moved
This object may be found here.
MolTAR
A może tak się uda:
  1. <?php
  2. $cookie_file = './cookie.txt';
  3. file_put_contents($cookie_file, '');
  4.  
  5. $c = curl_init();
  6. curl_setopt($c, CURLOPT_COOKIESESSION, 1);
  7. curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
  8. curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
  9. curl_setopt($c, CURLOPT_URL, 'http://xxx/Walidacja.asp');
  10. curl_setopt($c, CURLOPT_POST, 1);
  11. curl_setopt($c, CURLOPT_POSTFIELDS, 'LoginName===login===&LoginHaslo===haslo===&submit1=Logowanie'); //dane do wyslania
  12. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  13. curl_close($c);
  14.  
  15. $d = curl_init();
  16.  
  17. curl_setopt($d, CURLOPT_COOKIESESSION, 1);
  18. curl_setopt($d, CURLOPT_COOKIEFILE, $cookie_file);
  19. curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
  20.  
  21. curl_setopt($d, CURLOPT_RETURNTRANSFER, 1);
  22. curl_setopt($d, CURLOPT_POSTFIELDS, 'submit1=Potwierdzam&Magazyn=1');
  23. curl_setopt($d, CURLOPT_URL, &#092;"http://xxx/izam/ZamSesjaCookie.asp\");
  24.  
  25. curl_close($d);
  26.  
  27. $e = curl_init();
  28.  
  29. curl_setopt($e, CURLOPT_COOKIESESSION, 1);
  30. curl_setopt($e, CURLOPT_COOKIEFILE, $cookie_file);
  31. curl_setopt($e, CURLOPT_COOKIEJAR, $cookie_file);
  32.  
  33. curl_setopt($e, CURLOPT_POSTFIELDS, 'submit1=Potwierdzam&Magazyn=1');
  34. curl_setopt($e, CURLOPT_URL, &#092;"http://xxx/Sterowanie2.asp?sesjaid=0\");
  35.  
  36. curl_close($e);
  37.  
  38. $f = curl_init();
  39.  
  40. curl_setopt($f, CURLOPT_COOKIESESSION, 1);
  41. curl_setopt($f, CURLOPT_COOKIEFILE, $cookie_file);
  42. curl_setopt($f, CURLOPT_COOKIEJAR, $cookie_file);
  43.  
  44. curl_setopt($f, CURLOPT_URL, &#092;"http://xxx/izam/Zasady.asp\");
  45.  
  46. curl_close($f);
  47.  
  48. $g = curl_init();
  49.  
  50. curl_setopt($g, CURLOPT_COOKIESESSION, 1);
  51. curl_setopt($g, CURLOPT_COOKIEFILE, $cookie_file);
  52. curl_setopt($g, CURLOPT_COOKIEJAR, $cookie_file);
  53.  
  54. curl_setopt($g, CURLOPT_RETURNTRANSFER, 1);
  55. curl_setopt($g, CURLOPT_URL, &#092;"http://xxx/CenSzukaj.asp\");
  56. $page = curl_exec($g);
  57. curl_close($g);
  58. echo 'Wynik:
  59. '.$page
  60. ?>


A jak nie to sprawdź dokładnie adresy wszystkich stron
zegarek84
hmmm... ładnie ciurkiem napisane winksmiley.jpg

proponuję skorzystać z dodatku do mozilli Live HTTP Headers i sprawdzić co jest wysyłane - może strona wymaga coś więcej niz tylko cookies?? - może też wymagany jest na niektórych stronach referer, lub inne info - lub nie pusty nagłówek przeglądarki??....
ewelinac18
dziękuję za pomoc
MolTAR już wcześniej tak próbowałam
skorzystałam z rady zegarek84 i zainstalowałam Live HTTP Headers (bardzo fajna rzecz smile.gif)
trochę przeanalizowałam i znalazłam winę ale nie do końca wiem jak ją usunąć

trzeba w ostatnim etapie dodać ciasteczka ale ręcznie nie wiem dlaczego
  1. <?php
  2. curl_setopt($c, CURLOPT_COOKIE, 'ASPSESSIONIDQAAADSDS=KIGHBFHDINNLHEGAACEMBKAG; izam=loginname=xxx');
  3. ?>

ale z ciasteczkami pobranymi curl nie działa muszę w mozille patrzeć jakie ja uzyskałam ciasteczka i sama dopisać
zegarek84
Cytat(ewelinac18 @ 4.07.2009, 13:57:44 ) *
skorzystałam z rady zegarek84 i zainstalowałam Live HTTP Headers (bardzo fajna rzecz smile.gif)
trochę przeanalizowałam i znalazłam winę ale nie do końca wiem jak ją usunąć

trzeba w ostatnim etapie dodać ciasteczka ale ręcznie nie wiem dlaczego
  1. <?php
  2. curl_setopt($c, CURLOPT_COOKIE, 'ASPSESSIONIDQAAADSDS=KIGHBFHDINNLHEGAACEMBKAG; izam=loginname=xxx');
  3. ?>

ale z ciasteczkami pobranymi curl nie działa muszę w mozille patrzeć jakie ja uzyskałam ciasteczka i sama dopisać

OMG - u Ciebie jest:
Kod
curl_setopt($c, CURLOPT_COOKIESESSION, 1);

a w manualu pisze:
Cytat(CURLOPT_COOKIESESSION)
TRUE to mark this as a new cookie "session". It will force libcurl to ignore all cookies it is about to load that are "session cookies" from the previous session. By default, libcurl always stores and loads all cookies, independent if they are session cookies or not. Session cookies are cookies without expiry date and they are meant to be alive and existing for this "session" only.

podczas gdy widzę, że Ty sesję co chwila zamykasz ;p (curl_close) - pozatym nawet jeśli musisz "ręcznie" to czemu sobie tych cookies nie wrzucisz do jakiejś zmiennej jeśli juz "ciurkiem" piszesz - ogólnie wskazuję tylko błedy gdyż na błędach człowiek się uczy a sam curl ma sporo ciekawych opcji winksmiley.jpg

ogólnie jeśli dużo będziesz się "bawił" curl'em to zapoznaj jeszcze się blizej z ustawieniami CURLOPT_HEADERFUNCTION oraz CURLOPT_WRITEFUNCTION - bardzo ciekawe jeśli parsuje się dane dostępne podczas sesji - gdzie normalnie też np. "zabezpieczonych" obrazków nie można zgrać ^^ - ogólnie to da się tez kombinując inaczej bo zawsze da się do celu dojść okrężnymi drogami winksmiley.jpg
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.