Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][curl] Logowanie na plus.pl
Forum PHP.pl > Forum > Przedszkole
sannin
Cześć,

próbuje zalogować się na stronie plus.pl za pomocą curl, ale nie bardzo mi to idzie, kod wygląda tak:

  1. $post = array (
  2. "login=". $conf["login"] ."",
  3. "password=". $conf["password"] ."",
  4. "action=login",
  5. "success-url=https://www1.plus.pl/sso/konto/edycja/uslugi"
  6. );
  7.  
  8. $c = curl_init();
  9. curl_setopt($c, CURLOPT_POST, true);
  10. curl_setopt($c, CURLOPT_POSTFIELDS, implode("&", $post));
  11. curl_setopt($c, CURLOPT_URL, "http://www1.plus.pl/sso/logowanie/");
  12. curl_setopt($c, CURLOPT_COOKIEFILE, $conf["cookiepath"]);
  13. curl_setopt($c, CURLOPT_COOKIEJAR, $conf["cookiepath"]);
  14. curl_setopt($c, CURLOPT_HEADER, false);
  15. curl_setopt($c, CURLOPT_USERAGENT, $conf["useragent"]);
  16. curl_setopt($c, CURLOPT_TIMEOUT, $conf["timeout"]);
  17. curl_exec($c);
  18. curl_close($c);
  19. unset($c);


Kiedyś korzystałem z tego tutka http://marusz.net/?txt=23 i działało bardzo ładnie (wtedy było jeszcze miasto plusa). Teraz po odpaleniu pliku wyskakuje mi Logowanie i tyle, żadnego komunikatu o błędnym haśle nic. Tak wygląda sesja:

Cytat
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

www1.plus.pl FALSE /sso/logowanie FALSE 0 JSESSIONID 0000Lv2PuoLfyGQMrd6RhQL0RI5:14ei4ts8f

Nie mogę dojść dlaczego to nie działa.
Marusz
Ha, widzisz. Plus zmienił całkowicie metodę autoryzacji. Jestem w trakcie pisania nowego skryptu, bo ten się już do niczego nie nadaje. W ostatnim czasie napisałem poprawki do skryptów perlowych dla projektu "Skrypty SMS" - http://code.google.com/p/skrypty-sms/

Tutaj masz działający przykład:
http://marusz.net/sms.txt

Najbardziej interesuje Ciebie zawartość zmiennej $prepareSMS. Na jej przykładzie sam możesz stwierdzić, jak potężnych zmian dokonał Plus.
sannin
Widzę, że odezwał się sam autor kodu, dzięki bardzo smile.gif Na razie to nie mogę się zalogować, z tego co widzę to zmienne post mam dobre więc dlaczego się nie loguje?
patryk9200
może mają zabezpieczenie aby nie można się było logować w ten sposób.
Niektóre strony to blokują, ja np żeby ominąć zabezpieczenia na innej stronie identyfikuję się jako google, ty byś mógł zmienić na useragenta np. firefoxa.
kod:
  1. $curl = curl_init();
  2. curl_setopt($curl, CURLOPT_REFERER, "http://www.google.pl/");
  3. //ustawiamy refferer na www.google.pl (niektóre strony mają zabezpieczenia
  4. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  5. //podążamy za ewentualnym przekierowaniem
  6. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  7. //wyniku nie wyświetlamy a zapisujemy do zmiennej co ułatwia prace nad nim
  8. curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)');
  9. //ustawiamy useragent (niektóre strony mają zabezpieczenia)
  10. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  11. //Maxymalny czas połączenia ze stroną
  12. curl_setopt($curl, CURLOPT_HEADER, 0);
  13. //nie chcemy dołączać nagłówka
  14. $strona = curl_exec($curl);
  15. //uruchamiamy skonfigurowanego curla
  16. curl_close($curl);
sannin
Useragenta mam podanego

Cytat
$conf = array (
"login" => "aaa",
"password" => "aaa",
"number" => aaa,
"useragent" => "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)",
"cookiepath" => dirname(__FILE__) . "/cookies.txt",
"timeout" => 10
);
patryk9200
a to masz?
  1. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  2. //podążamy za ewentualnym przekierowaniem
sannin
Tego właśnie nie mam, ale po dodaniu dostaje komunikat o safe mode na serwerze.
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.