Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][cURL] Logowanie i ereg()
Forum PHP.pl > Forum > PHP
Komiłaj
Chcę, aby skrypt zalogował się cURLem na www.ang.pl
Daję kod:
  1. <?
  2. $c = curl_init('http://www.ang.pl/login');
  3. curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
  4. curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
  5. curl_setopt($c, CURLOPT_URL, 'http://www.ang.pl/');
  6. curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12;MEGAUPLOAD 1.0");
  7. curl_setopt($c, CURLOPT_POST, 1);
  8. curl_setopt($c, CURLOPT_POSTFIELDS,
  9. 'user_name=login&user_pass=haslo');
  10. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  11. curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
  12. echo $s = curl_exec($c);
  13. curl_close($c);
  14. ?>


I zwraca normalną stronę jako niezalogowany. Co zrobić, aby skrypt się logował?
cycofiasz
Może parametr csrf jest wymagany? Ustawiłeś chociaż $cookie_file ?
Komiłaj
Ustawiłem już przedtem jako pusty plik, więc chyba nie to.
cycofiasz
Musisz najpierw pobrać stronę logowania , z niej wyciągnąć wartość parametru csrf a następnie go wysłać wraz z loginem i hasłem
Komiłaj
Wydaje mi się, że to serwis się broni jakoś. Próbowałem tym samym skryptem na inną stronę i się udało ładnie. Da się temu zaradzić?
Fifi209
Cytat(cycofiasz @ 12.02.2011, 23:01:28 ) *
Musisz najpierw pobrać stronę logowania , z niej wyciągnąć wartość parametru csrf a następnie go wysłać wraz z loginem i hasłem



Cytat(Komiłaj @ 13.02.2011, 11:53:36 ) *
Wydaje mi się, że to serwis się broni jakoś. Próbowałem tym samym skryptem na inną stronę i się udało ładnie. Da się temu zaradzić?

A potrafisz czytać kolego?
Komiłaj
Musiało dojść do mnie, że w tym formularzu jest też pole csrf (:

Działa, ale tylko na localhoście. Na 2ap, czy innym ugu już nie. cURL mają tam włączony (sprawdzałem phpinfo).
Fifi209
Za sprawą CURL_FOLLOWLOCATION, oznacza to że masz włączony safe_mode a więc hosting możesz zmienić bo jest do d*py. smile.gif Już się tego nie używa.
Komiłaj
safe_mode jest wyłączony: http://screenshooter.net/9373296/skrin_4 , a strona i tak nic nie zwraca. Może być tak dlatego, że używam potem w skrypcie ereg(), a nie preg_match()?
Fifi209
Całkiem możliwe, co można przeczytać w dokumentacji, ereg() zostało usunięte
Cytat
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
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.