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
Marek607
post
Post #2





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 4.03.2010

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


Hej,

Co prawda to nie jest w php, ale bash, ale myśle że ci to pomoże:

Kod
#!/bin/bash
/usr/local/bin/curl  https://biznes-host.pl/?show=logowanie -d 'zaloguj=1&show=logowanie&s=logowanie&login_form=login&haslo_form=haslo&submit=Zaloguj' -c /root/cookebh 1>>/root/bhlog

/usr/local/bin/curl  https://biznes-host.pl/index.php?show=panel -b /root/cookebh 1>>/root/bhlog
ilenakoncie=`less /root/bhlog | grep Stan | awk '{ print $7}'`
echo "na koncie masz $ilenakoncie";
rm -f /root/cookebh
rm -f /root/bhlog


Przykładowy wynik:

Kod
root@s1:~# sh /root/ilewbh.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9143    0  9055  100    88   153k   1524 --:--:-- --:--:-- --:--:--  157k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17481    0 17481    0     0   139k      0 --:--:-- --:--:-- --:--:--  141k
na koncie masz 80.53
root@s1:~#


Jak się nie pali to mogę przekazać naszemu programiście by zrobił za Ciebie coś takiego w PHP.
Pozdrawiam
Marek z BH (IMG:style_emoticons/default/smile.gif)

Ten post edytował Marek607 4.10.2014, 10:53:28
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: 3.10.2025 - 06:18