Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] cURL - problem z logowaniem
d.stp
post 18.07.2013, 19:12:19
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

Ostrzeżenie: (0%)
-----


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

Go to the top of the page
+Quote Post
Aqu
post 19.07.2013, 09:17:27
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
d.stp
post 20.07.2013, 10:50:17
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

Ostrzeżenie: (0%)
-----


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


Ten post edytował d.stp 20.07.2013, 11:11:07
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.07.2025 - 05:57