Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] cURL - problem z logowaniem
Forum PHP.pl > Forum > Przedszkole
d.stp
Witam,
napisałem prosty skrypt do logowania do pewnego serwisu, niestety coś jest nie tak i nie mogę się zalogować...

  1. function login($url_to_login, $data){
  2. $fp = fopen("cookie.txt", "w");
  3. fclose($fp);
  4. $login = curl_init();
  5. curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
  6. curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
  7. curl_setopt($login, CURLOPT_TIMEOUT, 40000);
  8. curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
  9. curl_setopt($login, CURLOPT_URL, $url_to_login);
  10. curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  11. curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
  12. curl_setopt($login, CURLOPT_POST, TRUE);
  13. curl_setopt($login, CURLOPT_POSTFIELDS, $data);
  14. return curl_exec ($login);
  15. curl_close ($login);
  16. unset($login);
  17. }


Nie mam pojęcia co jest nie tak, nie ogarniam w ogóle tej biblioteki... Czytałem w necie, ale nie mogę znaleźć odpowiedzi na moje pytanie dlatego tutaj napisałem.

cookie.txt:

  1. x FALSE / FALSE 1334439257 PHPSESSID 172mkul1i1ficl4pdhatj31o31
  2. x FALSE / FALSE 1326512337 x_lang 1
  3. .x TRUE / FALSE 1524123000 __cfduid d2d351143c2ba3748a25aebe82dcde33d1374170031

Aqu
Trudno powiedzieć, nie wiadomo o jaką stronę chodzi i trudno to sprawdzić. Ale tutaj:
  1. return curl_exec ($login);
  2. curl_close ($login);
  3. unset($login);

dawanie kodu po return jest bez sensu, return kończy wykonywanie funkcji.
d.stp
Aqu, dzięki za rady, ale nie patrz na kod bo to jest tylko testowe smile.gif

Z tamtym sobie poradziłem, ale mam następny problem.

Uczę się obsługi tej biblioteki, dla testów napisałem skrypt do logowania i pobrania jakiejś wartości ze strony dostępnej po zalogowaniu. Problem w tym, że nie mogę się zalogować. Dane podaję na 100% poprawne. Sprawdzałem firebugiem co jest wysyłane POSTem i są tylko 2 parametry wysyłane - login oraz hasło.

Skrypt zamiast strony widocznej po zalogowaniu wyrzuca mi stronę z logowaniem, czyli tak jakby dane były błędne...

Funkcja do logowania:

  1. function login($url_to_login, $data){
  2. $fp = fopen("cookie.txt", "w");
  3. fclose($fp);
  4. $login = curl_init();
  5. curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
  6. curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
  7. curl_setopt($login, CURLOPT_TIMEOUT, 40000);
  8. curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
  9. curl_setopt($login, CURLOPT_URL, $url_to_login);
  10. curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  11. curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
  12. curl_setopt($login, CURLOPT_POST, TRUE);
  13. curl_setopt($login, CURLOPT_POSTFIELDS, $data);
  14. return curl_exec ($login);
  15. curl_close ($login);
  16. unset($login);
  17. }

I mógłby ktoś napisać co oznacza to FALSE w pliku cookie.txt?

  1. # Netscape HTTP Cookie File
  2. # This file was generated by libcurl! Edit at your own risk.
  3.  
  4. x FALSE / FALSE 0 JSESSIONID K-VtTJ7R4lTV5YDoCnWzf19U.undefined
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.