Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Skrypt który się automatycznie loguje
lekosm2
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

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


Witajcie, chciałbym pobierać dane z jednej strony przy użyciu PHP Simple HTML DOM Parser. Niestety strona z której chce pobrać dane wymaga zalogowania się. I pytanie do Was, jak zrobić, by się skrypt automatycznie logował przy użyciu wpisanych do niego danych do logowania?

Pozdrawiam.

@edit
Tam gdzie chcę się zalogować, to jest forum IPB 3.x i logowanie jest jako POST

Ten post edytował lekosm2 5.08.2016, 09:20:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
nansss93
post
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 27.10.2015

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


cURL
Go to the top of the page
+Quote Post
lekosm2
post
Post #3





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

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


Chciałbym zrobić dokładnie to samo, co kolega w tym temacie Temat: cURL i logowanie na IPB

Niestety on tu nie wstawił całego kodu, więc nie wiem gdzie podać login i hasło..
Przedstawi mi ktoś pełny przykład jak to powinno wyglądać?
Go to the top of the page
+Quote Post
Rysh
post
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Użyj sobie klasy np. tej:
https://github.com/php-curl-class/php-curl-class
Na stronie nawet masz przykład jak się logować.


--------------------
Go to the top of the page
+Quote Post
lekosm2
post
Post #5





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

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


Da się w ogóle tą class'e użyć na zwykłym hostingu www?

Pomoże mi ktoś z tym zwykłym cURL jak się zalogować? :/

Ten post edytował lekosm2 7.08.2016, 08:11:46
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Przecież to jest tylko nakładka. Jedyne co wymaga to rozszerzenia curl które i tak musisz mieć.
Pewnie problemem twoim jest to, że nie wiesz jak używać composer.


--------------------
Go to the top of the page
+Quote Post
Rysh
post
Post #7





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Cytat(viking @ 7.08.2016, 09:17:12 ) *
Przecież to jest tylko nakładka. Jedyne co wymaga to rozszerzenia curl które i tak musisz mieć.
Pewnie problemem twoim jest to, że nie wiesz jak używać composer.

Tak to nakładka, ale wg mnie bardzo dobra której sam używam. Ograniczona chyba do minimum wink.gif


--------------------
Go to the top of the page
+Quote Post
lekosm2
post
Post #8





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

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


To powiecie mi w jaki sposób to zrobić z tym php-curl-class?
Niby są tam przykłady, ale za cholerę nie umiem ich użyć. closedeyes.gif
Go to the top of the page
+Quote Post
Rysh
post
Post #9





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Cytat(lekosm2 @ 11.08.2016, 09:30:28 ) *
To powiecie mi w jaki sposób to zrobić z tym php-curl-class?
Niby są tam przykłady, ale za cholerę nie umiem ich użyć. closedeyes.gif

Patrzysz jakie dane przeglądarka wysyła do logowania i je wpisujesz analogicznie:
  1. $curl = new Curl();
  2. $curl->post('https://www.example.com/login/', array(
  3. 'username' => 'myusername',
  4. 'password' => 'mypassword',
  5. ));


--------------------
Go to the top of the page
+Quote Post
markuz
post
Post #10





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


1. Wchodzisz na stronę z logowaniem z poziomu przeglądarki
2. Otwierasz zakładkę sieć/network z devtools
3. Wpisujesz dane, logujesz się i szukasz żądania odpowiedzalnego za logowanie (prawdopodobnie POST np. [POST] /login)
4. Kopiujesz żądanie do schowka (kopiuj jako cURL, copy as cURL)
5. Przepisujesz żądanie na cURL w PHP (Google Ci podopowie jak ustawić wszystkie opcje) albo uruchamiasz je np. za pomocą funkcji exec.

Pamiętaj o ustawieniu pliku z cookies w cURL tak aby skrypt zapamiętał Twoją sesje, potem jak chcesz wykonać jakieś akcje na stronie wczytujesz ten plik cookies (tam jest prawdopodobnie ID sesji użytkownika na którego się zalogowałeś).

Pamiętaj też o tym, że taka sesja nie trwa wiecznie i czasami podczas "chodzenia" po stronie zostaniesz wylogowany - wtedy musisz od nowa wykonać skrypt który do pliku z cookies zapisze nowe ID sesji.



--------------------
Go to the top of the page
+Quote Post
lekosm2
post
Post #11





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

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


  1. $curl = new Curl();
  2. $curl->post('https://www.example.com/login/', array(
  3. 'username' => 'myusername',
  4. 'password' => 'mypassword',
  5. ));


a include jaki załączyć?

Ten post edytował lekosm2 12.08.2016, 11:27:29
Go to the top of the page
+Quote Post
Rysh
post
Post #12





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Jeśli instalowałeś composerem to vendor/autoload.php


--------------------
Go to the top of the page
+Quote Post
lekosm2
post
Post #13





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

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


Znalazłem to https://github.com/shuber/curl i tego użyłem. Tylko teraz jest problem, jak zrobić, że gdy się zaloguję to skrypt nie będzie ponownie się logował tylko wyświetli zawartość strony.
Czyli zamiast
$response = $curl->post
to
$response = $curl->get

Potrzebuję jakiś warunek, który to sprawdzi, czy sesja w cookie jest ważna.

Ten post edytował lekosm2 13.08.2016, 11:55:32
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 16:11