Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][php curl] Problem z zalogowaniem - curl
Forum PHP.pl > Forum > Przedszkole
zaxxxon
Mam problem z jedną ze stron mojego dostawcy, chcę ja "przejechać" curlem ale jest problem z tą stroną logowania:


<html>
<head>
<title>Konfiguracja....</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Set-Cookie" content="webid2=ABCDEFG;expires=31-DEC-2019 23:59:59 GMT;">
<meta http-equiv="Set-Cookie" content="session_id=nr_sesji;expires=31-DEC-2019 23:59:59 GMT;">
</head>
<body onLoad="document.mainform.submit();" bgcolor="#FFFFFF" background="images/main_back.gif" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" scroll="no">
<form name="mainform" action="homework" target="_top"></form>
</body>
</html>

Domyślam się, że to przez to przekierowanie: document.mainform.submit();

Bo pojawia się u mnie błąd: 404, nie odnaleziono /homework (testuję to na localhoscie)

Nie mogę podać url do strony, bo jest ona u mnie w intranecie i nie chciałbym jej podawać mimo wszystko.
Natomiast mój kod php wygląda tak:


$form_url='https://......../login';
$post_var = 'act=passcode&usr=IDENTYFIKATOR&location=homework';
$ch=curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_URL, $form_url);
curl_setopt($ch, CURLOPT_COOKIEJAR,'cookie-'.$name_site.'.txt');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 1); //zmienne post
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_var);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //aby pomijac cert ssl
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
//ob_start(); // prevent any output
curl_exec($ch); // execute the curl command
//ob_end_clean(); // stop preventing output
//echo print_r(curl_getinfo($ch));echo "<br><br>";
echo curl_errno($ch);
curl_close ($ch);
unset($ch)


To główny fragment kodu. To co do przekazania w post podglądałem sobie w dodatku do firefoxa HttpFox.
Chociaż dziwi mnie, że potem obserwując ten swój kod nie widzę już w HttpFox żadnych danych POST, natomiast są tam dane GET, ale pewnie tak powinno to działać.
aras785
A jaki błąd Ci się pojawia lub napisz co Ci nie działa?

Jeśli 404 to oznacza, ze po prostu dajesz zły adres... Sprawdź gdzie tak naprawdę logowanie prowadzi, ale nie przez źródło tylko przez narzędzie dla dewelopera (google chrome: F12 -> zakładka: Network).
Dla opcji:
  1. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
daj
  1. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);


Pozdrawiam
zaxxxon
Oczywiście że podaję prawidłowy adres! Przecież pisałem też, że korzystam z narzędzia HttpFox. Adres jest prawidłowy, bo jak na niego wchodzę to mam formularz logowania.
Widzę, że strona ze strony logowania przechodzi na kolejną.... i właśnie na tej kolejnej jest tak naprawdę to źródło które wkleiłem...

<form name="mainform" action="homework" target="_top"></form>

U mnie - co też pisałem - pojawia się po tym przekierowaniu błąd 404, bo nie ma takiej strony u mnie jak, załóżmy że podam pełną ścieżkę z apache:

http://localhost/moj_skrypt/homework

mógłbym ew. zastosować od razu header( ) i zmianę lokacji samemu, ale nie wiem czy tak mogę. Poza tym nie utworzył mi się plik cookie.

Testowałem z inną stronką (tym razem własnego autorstwa) i bez problemu przechodzę przez formularz logowania i tworzy się u mnie plik cookie.

Może chociaż jakieś podpowiedzi? Np. czemu nie tworzy mi się cookie, czy te przekierowania w js document.form.submit są groźne dla działania curla?
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.