Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zalogowanie na strone ( curl )
Forum PHP.pl > Forum > PHP
Gutyo
Witam.

Ostatnio chciałem się zalogować na stronę torrenty.org poprzez curl, lecz nic z tego, ponieważ na przeszkodzie stoi captcha.
  1. <?php
  2. $c = curl_init();
  3. curl_setopt($c, CURLOPT_URL, 'http://www.torrenty.org/login.php');
  4. curl_setopt($c, CURLOPT_POST, 1);//przesylamy metodą post
  5. curl_setopt($c, CURLOPT_POSTFIELDS, 'user=****&password=****&kod=123456'); //dane do wyslania
  6. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  7. $page = curl_exec($c);
  8. curl_close($c);
  9. echo $page;
  10. ?>


Nawet jak wysyłam takie zapytanie, to nie wyskakuje żaden błąd o złych danych.

Używam wtczki HttpFox, do firefoxa, aby odczytywać nagłówki, ciastka itp.

Czy istnieje jakiś sposób na zalogowanie ?
Czy mogę się zalogować lokalnie, a później skopiować ciasteczki na serwer, aby ominąć logowanie ?
karolrynio
Polecam Ci do przeczytania:
http://php.pl/Wortal/Artykuly/PHP/Bibliote...ol-HTTP/Ciastka

Szczególną uwagę zwróć na:
CURLOPT_COOKIEFILE i CURLOPT_COOKIEJAR


Gutyo
Dzięki za zainteresowanie, lecz nadal nic z tego.

Wgrałem plik cookie.txt na serwa, ustawiłem chmody na 777, a plik jest pusty, mimo iż ma zapisywać do niego ciastko.

  1. $ch = curl_init('http://torrenty.org/login.php');
  2. curl_setopt($ch, CURLOPT_HEADER, 1);
  3. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
  4. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
  5. curl_exec($ch);
  6. curl_close($ch);



Lecz jeżeli zamiast adresu torrenata dam np: http://poczta.wp.pl, wtedy otrzymuje ciasteczko.

W takim razie coś jest nie tak ze stroną torrenty.org ?
Ktoś ma jeszcze jakieś podpowiedzi ?
Fifi209
Zainteresuj się OCR
Gutyo
To już nie chodzi o tą captche. Poprostu nawet jak znam już kod jaki mam wpisać to nie działa wysyłanie formularzem.

Ok poradziłem sobie zapisując ciastko na sztywno w kodzie, za pomocą:

curl_setopt($curl, CURLOPT_COOKIE, "jakies tam ciasteczko");
karolrynio
Prawdopodobnie problem jest w tym, że:
W pierwszym kodzie wysyłasz dane postem ale nie wysyłasz pobierasz ciasteczek:
  1. curl_setopt($c, CURLOPT_POST, 1);//przesylamy metodą post
  2. curl_setopt($c, CURLOPT_POSTFIELDS, 'user=****&password=****&kod=123456'); //dane do wyslania


Za to w drugim kodzie który pokazałeś wysyłasz / odbierasz ciasteczka ale nie wysyłasz danych postem:
  1. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');



Połącz dwa kody w jeden i powinno jakoś działać.

Później wystarczy, że przy pobieraniu kolejnych stron po zalogowaniu będziesz dodawał:
  1. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');

Gutyo
Metoda wysyłania postem, oraz pobieranie ciasteczek i zapis ich do pliku nie działała na tej stronie co chciałem, lecz np, na pocztę wp.pl zalogowałem się normalnie i zapisało mi się ciasteczko do pliku.

Próbowałem już oba mieszać i nic nie dało. Dlatego zalogowałem się lokalnie, za pomocą wtyczki HttpFox pobrałem nagłówki oraz ciasteczki i na sztywno wpisałem w kod. Teraz wszystko ładnie działa, lecz dzięki za zainteresowanie.

Pozdrawiam, Gutyo.
Fifi209
Cytat(Gutyo @ 16.08.2011, 17:28:32 ) *
To już nie chodzi o tą captche. Poprostu nawet jak znam już kod jaki mam wpisać to nie działa wysyłanie formularzem.

A skąd ją niby znasz? smile.gif Za każdym odświeżeniem strony masz nowy kod, więc mnie to bardzo ciekawi.
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.