Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cURL i logowanie się do serwisu
Forum PHP.pl > Forum > PHP
MitS
Witam serdecznie,

mam dość duży problem, otóż próbuję się zalogować na moją pocztę którą mam w onecie i jak na złość nie wychodzi.
Mam taki kod:

  1. <?php
  2. function getContacts($login, $password){
  3. $cookie = "./onet.txt";
  4. $curl = curl_init('http://poczta.onet.pl/');
  5.  
  6. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  7. curl_setopt($curl, CURLOPT_REFERER, "http://poczta.onet.pl/login.html");
  8. curl_setopt($curl, CURLOPT_HEADER, 0);
  9. curl_setopt($curl, CURLOPT_POST, true);
  10. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  11. curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
  12. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  13. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
  14. curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
  15. curl_setopt($curl, CURLOPT_POSTFIELDS, 'e='.$login.'&m=0&ok=0&ver=0&r=&p='.$password.'&x=0&y=0');
  16. $result = curl_exec($curl);
  17.  
  18. curl_close ($curl);
  19. return $result;
  20. }
  21.  
  22. $z = getContacts("mojlogin@op.pl", "mojehaslo");
  23. print_r($z);
  24. ?>


niestety ten kod mnie nie loguje (jedynie dochodzi do pola logowania).
Jak by ktoś mógł by mi pomoc poprawic powyższy kod tak by zaczał działać było by super.
Pozdrawiam
radmistrz2
po co ta linijka??

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);

Przecież do onetu nie logujesz sięprzez SSL.
MitS
faktycznie ta linijka nie jets potrzebna.
Już ją usunąłem, ale niesttey efekt jest ten sam, nie loguje mi się na system pocztowy onetu :/

ech ja już nie wiem co jest źle sad.gif sad.gif cały czas nie wychodzi, może jednak ktoś miał podobny problem i chciałby się podzielić rozwiązniem ?
radmistrz2
Nie wiem jak na Onecie, ale jest taka możliwość, że po zalogowaniu cie przekierowuje. Spróbuj zrobić tak:
1. Logujesz się tym skryptem
2. W tym samym skrypcie dodajesz wczytywanie poczta.onet.pl i powinno trybić
b4x
Ustaw

  1. <?php
  2. curl_setopt($curl, CURLOPT_HEADER, 0);
  3. ?>


na
  1. <?php
  2. curl_setopt($curl, CURLOPT_HEADER, 1);
  3. ?>


I pokaż tutaj co wyświetla winksmiley.jpg
MitS
wyświetla mi takie coś:

Cytat
HTTP/1.0 302 Found
Server: Apache/1.3.33
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Expires: Wed, 11 Jul 2007 19:22:22 GMT
Location: folder.html
P3P: CP="ALL DSP COR IVD IVA PSD PSA TEL TAI CUS ADM CUR CON SAM OUR IND"
Date: Thu, 10 Jul 2008 19:16:24 GMT
Content-Type: text/html; charset=iso-8859-2
Connection: close

HTTP/1.0 302 Found
Server: Apache/1.3.33
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Expires: Wed, 11 Jul 2007 19:22:19 GMT
Location: http://poczta.onet.pl/login.html
P3P: CP="ALL DSP COR IVD IVA PSD PSA TEL TAI CUS ADM CUR CON SAM OUR IND"
Date: Thu, 10 Jul 2008 19:16:27 GMT
Content-Type: text/html; charset=iso-8859-2
Connection: close

HTTP/1.0 200 OK
Pragma: no-cache
Expires: Wed, 11 Jul 2007 19:22:13 GMT
Server: AOLserver/3.4.2 SP/1
Vary: Accept-Encoding
Cache-Control: max-age=90
Date: Thu, 10 Jul 2008 19:16:27 GMT
Content-Type: text/html; charset=iso-8859-2
Content-Length: 9155
Connection: close
b4x
Kurdę chcę ci pomóc (Ale nie mam konta w onet.pl) - Próbuje założyć ale wywala mi :

"Wpisałeś niepoprawny kod."

tak zobaczyłem jakie dane są przesyłane w post (to chyba mail powinien być zakodowany [bo widziałem mai%40onet.eu])
MitS
hmmm.... szkoda:/
Niestety zmiana kodowania na %40 nic nie zmieniła.

może pomogą takie informacje (z Live HTTP headers), wygenerowane podczas poprawnego logowania:
http://rafb.net/p/PZF12A66.html

Pozdro
marcineck
Odświeżam temat.
Próbuje się zalogować do testowego konta na Onecie, ale niestety jeden wielki GUZIK.
  1. ini_set('display_errors',true);
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, 'http://poczta.onet.pl/login.html');
  4. curl_setopt($ch, CURLOPT_HEADER, true);
  5. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
  6. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  8. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  9. $site = curl_exec($ch);
  10. curl_setopt($ch, CURLOPT_POST, true);
  11. curl_setopt($ch, CURLOPT_POSTFIELDS, 'e=cinek.rodzynek@onet.pl&p=marcin123&ok=2&perm=1&m=0&ver=2');
  12. $wynik=curl_exec($ch);
  13. echo $wynik;


Nagłówek zwrotny niby mnie loguje, ale to wciąż nie to, bo... pomimo odpalenia drugiego cURL'a ale już z http://poczta.onet.pl/folder.html?k=0&m=0&ver=2 zamiast na pocztę dostaje się na stronę logowania.
Macie może jakiś pomysł?
Z góry dzięki smile.gif
CapaciousCore
Przepraszam najmocniej za odświeżenie tematu. Ten post nawiązuje także do cURL: logowanie się do onetu. Przed chwilą sam się nad tym głowiłem dlaczego nie chce przepuścić i powód jest błahy. Musicie sobie spreparować ciasteczka. Np. dla logowania się do bloga potrzebne są następujące: onet_ubi, onetzuo_ticket (lol), onet_cid, onet_sid, onet_cst, onet_aui i onet_uid.

Łatwo idzie to sprawdzić wink.gif Czyścicie ciasteczka w przeglądarce, odświeżacie i próbujecie się zalogować. Pomimo prawidłowo podanych danych dostaniecie komunikat, że dane są nieprawidłowe. Jak zrobicie to ponownie (jak już ciastka wskoczą) to zostaniecie zalogowani. Post dla potomnych gdyby mieli taki sam problem.
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.