Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Curl - logowanie po https, Curl - logowanie po https
griszasm
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 1.04.2009

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


Witam,

potrzebuje skryptu, który będzie logował się na stronę https, wiem że takie zadania wykonuje biblioteka curl ale nie mogę znaleźć nigdzie w internecie rozwiązania autoryzacji użytkownika po https. Potrzebuje skrypt php z użyciem curl który:
1) zaloguje się na https://www.someplace.pl korzystając z danych username i userpass (wykona posta i zaloguje użytkownika)
2) przejdzie na stronę https://www.someplace.pl/podstrona.html
3) na tej stronie również wykona posty (ustawi checkboxy, wartości pól i "kliknie" submit)
4) z wynikowej strony skopiuje (znajdzie i skopiuje) wybrane wynikowe wiersze
5) wyświetli te wiersze jaki wynik działania skryptu

czyli chodzi tu o automatyzacje pewnych stałych zachowań ale user nie musi tego widzieć (czyli SeleniumIDE odpada), użytkownik loguje się, wybiera podstrone, na tej podstronie zaznacza checkboxa i wstawia w inputa jakiś tekst po czym klika "OK" (submit), na stronie wynikowej wybiera (kopiuje) wiersze wynikowe.

Czyli automatyzacja która pozwoli od razu uzyskać wiersze wynikowe bez konieczności ciągłego wykonywania ww. czynności.

Z góry dziękuje za wszelką pomoc...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
griszasm
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 1.04.2009

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


Interesuje mnie gotowy kod który przy pomocy curl wykonuje opisane przezemnie operacje, próbowałem następującego kodu ale nie działa. Nie mam pojęcia co robie źle więc prosiłbym o pomoc lub gotowy kod, mój jest następujący:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$password);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $request_xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));

//Execute the request and also time the transaction ( optional )
$start = array_sum(explode(' ', microtime()));
$result = curl_exec($ch);

gdzie pod $url jest adres strony https, $username i $password przechowują dane do logowania. W result pojawia się kod strony https ale bez styli css i polskiego kodowania, niestety nie pojawia się wynik logowania. Jak to rozwiązać?

Poza tym jak wykonywać w curl kilka takich odwołań tzn: jeden request po https (logowanie), następny request na stronie wynikowej, następny request na stronie wynikowej poprzedniego itd. Prosiłbym o pomoc.

Ok mogę ominąć https i logować się po http ... ale nawet to nie działa, po wykonaniu następującego kodu:
$hand = curl_init();

curl_setopt($hand, CURLOPT_URL, $url);
curl_setopt($hand, CURLOPT_POST, 1);
curl_setopt($hand, CURLOPT_POSTFIELDS, 'login=xxx&password=yyy&reszta ciągu requesta która powoduje zalogowanie po wpisaniu w adresie url i wywołaniu');

$result = curl_exec($hand);

otrzymuje błąd 503 serwera:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Prośba o pomoc. Może występuje tu jakiś timeout gdyż proces zalogowania trwa 5sek.
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: 5.10.2025 - 16:54