Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]CURL logowanie POST a później przekierowanie.
Giluś
post
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Hej, próbuję się zalogować za pomocą POST'a na stronę
Kod
biznes-host.pl
w celu pobrania aktualnego stanu wirtualnego portfela..
Zrobiłem sobie w miarę prosty skrypt który loguje mnie bez problemu:

  1. <?php
  2.  
  3. $curl = curl_init('https://biznes-host.pl/?show=logowanie');
  4. curl_setopt($curl, CURLOPT_COOKIEFILE, dirname(__FILE__) . 'cookies.txt');
  5. curl_setopt($curl, CURLOPT_COOKIEJAR, dirname(__FILE__) . 'cookies.txt');
  6. curl_setopt($curl, CURLOPT_POSTFIELDS, 'zaloguj=1&show=logowanie&s=logowanie&login_form=[login]&haslo_form=[haslo]&submit=Zaloguj');
  7.  
  8. $strona = curl_exec($curl);
  9. curl_close($curl);
  10.  
  11. print_r($strona);
  12. ?>


Opiszę jak działa tradycyjne logowanie:
1. Wpisuję dane login/haslo i klikam zaloguj.
2. Wykonuję się skrypt i wyświetla tekst, że zostałem zalogowany i za jakieś 2-3 sekundy jest przekierowanie na stronę z portfelem.
3. Znajduję się na stronie z portfelem.

I mój problem polega na tym, że gdy u siebie na serwerze wykonuję ten skrypt to dochodzi do punktu "2" że wyświetla mi, że jestem zalogowany i że zostanę przekierowany i wówczas mnie przekierowuje (na lokalnym serwerze, czyli dopisuję adres: "/index.php?show=panel"), co uniemożliwia mi całkowicie odczytanie danych..



I teraz moje pytanie czy jest jakiś sposób, aby mi się dopiero wyświetliła ta końcowa strona bez przekierowania, tak abym po prostu dostał źródło strony i później za pomocą wyrażeń regularnych wybrał sobie to czego poszukuję ?
Nie wiem, może od razu po wykonaniu POSTu dać przekierowanie na "https://biznes-host.pl/?show=panel" tylko w jaki sposób ?

Mam nadzieję, rozumiecie o co mi mniej więcej chodzi (IMG:style_emoticons/default/smile.gif)

Pozdrawiam i z góry bardzo dziękuje (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


  1. <?php
  2.  
  3. $post = 'login_form=NICK&haslo_form=HASLO';
  4.  
  5. $c = curl_init();
  6. curl_setopt($c, CURLOPT_URL, 'https://biznes-host.pl/?show=logowanie');
  7. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.2) Gecko/20090729 desktopsmiley_2_2_5643778701369665_44_71 DS_gamingharbor Firefox/3.5.2 (.NET CLR 3.5.30729)');
  8. curl_setopt($c, CURLOPT_POST, true);
  9. curl_setopt($c, CURLOPT_POSTFIELDS, $post);
  10. curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
  11. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  12. curl_setopt($c, CURLOPT_COOKIEFILE, 'cookies.txt');
  13. curl_setopt($c, CURLOPT_COOKIEJAR, 'cookies.txt');
  14. $p = curl_exec($c);
  15. curl_close($c);
  16.  
  17. $c = curl_init();
  18. curl_setopt($c, CURLOPT_URL, 'https://biznes-host.pl/index.php?show=panel');
  19. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.2) Gecko/20090729 desktopsmiley_2_2_5643778701369665_44_71 DS_gamingharbor Firefox/3.5.2 (.NET CLR 3.5.30729)');
  20. curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
  21. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  22. curl_setopt($c, CURLOPT_COOKIEFILE, 'cookies.txt');
  23. curl_setopt($c, CURLOPT_COOKIEJAR, 'cookies.txt');
  24. $p = curl_exec($c);
  25. curl_close($c);
  26.  
  27. echo $p;
  28.  
  29. ?>


Ten skrypt Cię zaloguje i przeniesie na stronę główną panelu już jako zalogowany user. W zmiennej $p na samej dole skryptu masz zapisany kod HTML wynikowej strony.
Pozostaje Ci napisać wyrażenie regularne, które wyciągnie Ci stan konta z kodu HTML (IMG:style_emoticons/default/wink.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 - 12:03