Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie formularza Curl
Forum PHP.pl > Forum > PHP
Kasat
Witajcie, mam problem ponieważ na stronie wizzair.com jest formularz szukania lotu z x lotniska na y lotnisko z zależnościami do daty itp.

form action jest na pl-PL/Select, jednak gdy tam wysyłam formularz to niestety przekierowuje mnie na /pl-PL/Search
Przyczyną pewnie jest brak odebrania danych POST..
Po przetestowaniu skryptu okazuje się, że domyślne nazwy pól input jest chyba za długie.. bo gdy je zostawiam to testowy skrypt nie odbiera danych, a gdy tylko lekko je skrócę to od razu odbiera... Możecie pomóc?

  1. <?php
  2.  
  3. $url = 'http://wizzair.com/pl-PL/Select';
  4. $site = 'http://wizzair.com/pl-PL/Search';
  5. $html = pobierzstrone($site);
  6. preg_match('/<input id="viewState" type="hidden" value="(.*)" name="viewState">/', $html, $viewstate);
  7. $d = 'ControlGroupRibbonAnonHomeView$AvailabilitySearchInputRibbonAnonHomeView$';
  8. $postFields['eventTarget'] = '';
  9. $postFields['eventArgument'] = '';
  10. $postFields[$d.'ReturnDate'] = '2013-09-28';
  11. $postFields[$d.'ButtonSubmit'] = 'Szukaj';
  12. $postFields[$d.'DepartureDate'] = '2013-09-02';
  13. $postFields[$d.'PaxCountINFANT'] = '0';
  14. $postFields[$d.'PaxCountCHD'] = '0';
  15. $postFields[$d.'PaxCountADT'] = '1';
  16. $postFields['viewState'] = $viewstate[1];
  17. $postFields['pageToken'] = '';
  18. $postFields[$d.'OriginStation'] = 'AES';
  19. $postFields[$d.'DestinationStation'] = 'VNO';
  20. $postFields[$d.'StudetSeniorGroup'] = 'off';
  21. $postFields[$d.'WizzFlightSearchInput2_COUNTRIES'] = 'PL';
  22.  
  23. szukaj($url, $postFields);
  24.  
  25.  
  26. function szukaj($url,$postFields){
  27. $ch = curl_init($url);
  28. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  29. curl_exec($ch);
  30. curl_close($ch);
  31. }
  32.  
  33. function pobierzstrone($site){
  34. $ch = curl_init();
  35. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  36. curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  37. curl_setopt($ch, CURLOPT_TIMEOUT, 40);
  38. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
  39. curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
  40. curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
  41. curl_setopt($ch, CURLOPT_URL, $site);
  42. return curl_exec ($ch);
  43. curl_close ($ch);
  44.  
  45. }
  46.  
  47.  
  48.  
  49. ?>
buliq
Nie pomagamy łamać prawa.

Post to nie wszystko...
Kasat
Jakie łamanie prawa tu widzisz? haha.gif
To skrypt wysyłajacy formularz w celu późniejszego odebrania danych na temat cen itd.
Coś jak strona informacyjna haha.gif
buliq
Gdyby wizzair chciał to udostępniać to udostępnił by API, to jak powiedzieć że postowanie cudzych artykułów na własnej stronie nie jest kradzieżą, bo przecież wszyscy mają dostęp do tych artykułów.
Kasat
Porównanie dajesz tak jakby z dupy, ale dobra..
Zgłoszę Googla za to, że indeksuje zawartość moich stron: teksty, obrazki etc... ^^
Nie będę z Tobą wdawał się w dyskusje, bo to nie o to mi chodzi.


Nie chodzi mi oczywiście o napisanie całego kodu, tylko o nakierowanie w czym może być problem.
jackraymund
  1. $postFields['eventTarget'] = '';
  2. $postFields['eventArgument'] = '';
  3. $postFields[$d.'ReturnDate'] = '2013-09-28';
  4. $postFields[$d.'ButtonSubmit'] = 'Szukaj';
  5. $postFields[$d.'DepartureDate'] = '2013-09-02';
  6. $postFields[$d.'PaxCountINFANT'] = '0';
  7. $postFields[$d.'PaxCountCHD'] = '0';
  8. $postFields[$d.'PaxCountADT'] = '1';
  9. $postFields['viewState'] = $viewstate[1];
  10. $postFields['pageToken'] = '';
  11. $postFields[$d.'OriginStation'] = 'AES';
  12. $postFields[$d.'DestinationStation'] = 'VNO';
  13. $postFields[$d.'StudetSeniorGroup'] = 'off';
  14. $postFields[$d.'WizzFlightSearchInput2_COUNTRIES'] = 'PL';

zrobiles vardump tego? tak zrób
  1. $postFields['eventTarget'] = '';
  2. $postFields['eventArgument'] .= '';
  3. $postFields[$d.'ReturnDate']. = '2013-09-28';
  4. $postFields[$d.'ButtonSubmit'] .= 'Szukaj';
  5. $postFields[$d.'DepartureDate'] .= '2013-09-02';
  6. $postFields[$d.'PaxCountINFANT'] .= '0';
  7. $postFields[$d.'PaxCountCHD'] .= '0';
  8. $postFields[$d.'PaxCountADT'] .= '1';
  9. $postFields['viewState'] .= $viewstate[1];
  10. $postFields['pageToken'] .= '';
  11. $postFields[$d.'OriginStation'] .= 'AES';
  12. $postFields[$d.'DestinationStation'] .= 'VNO';
  13. $postFields[$d.'StudetSeniorGroup'] .= 'off';
  14. $postFields[$d.'WizzFlightSearchInput2_COUNTRIES'] = 'PL';


@edit
+
do funkcji szukaj dodaj
curl_setopt($ch, CURLOPT_POST, true);
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.