Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Logowanie cURL
nitro11
post 15.09.2010, 15:59:09
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Mam coś takiego:

  1. $c = curl_init();
  2. curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
  3. curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
  4. curl_setopt($c, CURLOPT_URL, 'http://www.domena.pl');
  5. curl_setopt($c, CURLOPT_POST, 1);
  6. curl_setopt($c, CURLOPT_POSTFIELDS,
  7. 'user=maj&pass=55555');
  8. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  9. curl_getinfo($c);
  10. curl_exec($c);
  11. $nazwa=curl_exec($c);
  12. var_dump($nazwa);


Problem jest taki, że dostaję stronę z wypełnionym formularzem, ale jeszcze trzeba kliknąć
przycisk "Zaloguj".

Jak to obejść?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
yevaud
post 15.09.2010, 16:02:22
Post #2





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


poprosiles curlem o strone i dostales strone
jesli chcesz sie zalogowac to wysylaj dane ktore umozliwia logowanie

http://forum.php.pl/lofiversion/index.php/t89644.html
Go to the top of the page
+Quote Post
nitro11
post 15.09.2010, 16:22:34
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Czytałem już tamtego posta.

Dodałem jeszcze połączenie z 2 stroną, która powinna byćwidoczna tylko po zalogowaniu:

  1. echo $url='http://www.domena.pl/dlazalogowanych';
  2. $ch_e=curl_init($url);
  3. define('USER_AGENT', 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060427 Firefox/1.0.6');
  4. //curl_setopt($ch_e, CURLPROXY_HTTP, '221.130.17.143');
  5. curl_setopt($ch_e, CURLPROXY_HTTP, '173.203.81.112');
  6. curl_setopt($ch_e, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($ch_e, CURLOPT_FOLLOWLOCATION, 1);
  8. curl_setopt($ch_e, CURLOPT_USERAGENT, USER_AGENT);
  9. curl_setopt($ch_e, CURLOPT_SSL_VERIFYPEER, FALSE);
  10. curl_setopt($ch_e, CURLOPT_SSL_VERIFYHOST, 2);
  11. curl_setopt($ch_e, CURLOPT_COOKIEJAR, 'cok.txt');
  12. curl_setopt($ch_e, CURLOPT_COOKIEJAR, 'cok.txt');
  13. #curl_setopt($ch_e, CURLOPT_POSTFIELDS, $postData);
  14. $nazwa=curl_exec($ch_e);
  15. var_dump($nazwa);
  16. //exit;
  17. //sleep(1);



I lipa bo dostaje formularz logowania.

Co robię nie tak ?
Go to the top of the page
+Quote Post
tomekmvr
post 15.09.2010, 16:27:03
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

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


Masz dwa razy linijke nie potrzebnie, ona zapisuje ciastko do pliku
  1. curl_setopt($ch_e, CURLOPT_COOKIEJAR, 'cok.txt');


a ty musisz wysłać informacje o sesji więc zmień je na
  1. curl_setopt($ch_e, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cok.txt');


Ten post edytował tomekmvr 15.09.2010, 16:27:22


--------------------
Go to the top of the page
+Quote Post
nitro11
post 15.09.2010, 16:37:39
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Nie pomogło.
Przerobiłem wszystko i teraz mam:


  1. $url = 'http://www.a.pl';
  2.  
  3. $ch = curl_init();
  4.  
  5. // SET URL FOR THE POST FORM LOGIN
  6. curl_setopt($ch, CURLOPT_URL, 'http://www.a.pl);
  7. curl_setopt($ch, 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");
  8. curl_setopt ($ch, CURLOPT_POST, 1);
  9. curl_setopt ($ch, CURLOPT_POSTFIELDS, "user=maj&pass=55555");
  10. curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  11. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  12. $store = curl_exec ($ch);
  13. curl_setopt($ch, CURLOPT_URL, $url);
  14. $content = curl_exec ($ch);
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22. $url = 'http://www.a.pl';
  23.  
  24. $ch_e=curl_init($url);
  25. define('USER_AGENT', 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.0.6');
  26.  
  27. curl_setopt($ch_e, 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");
  28. curl_setopt($ch_e, CURLOPT_RETURNTRANSFER, 1);
  29. curl_setopt($ch_e, CURLOPT_FOLLOWLOCATION, 1);
  30. curl_setopt($ch_e, CURLOPT_USERAGENT, USER_AGENT);
  31. curl_setopt($ch_e, CURLOPT_SSL_VERIFYPEER, FALSE);
  32. curl_setopt($ch_e, CURLOPT_SSL_VERIFYHOST, 2);
  33. curl_setopt($ch_e, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
  34. curl_setopt($ch_e, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
  35. curl_setopt($ch_e, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cok.txt');
  36. $nazwa=curl_exec($ch_e);
  37. var_dump($nazwa);


Ale dalej nie działa :/

Ten post edytował nitro11 15.09.2010, 16:38:09
Go to the top of the page
+Quote Post
yevaud
post 15.09.2010, 16:39:32
Post #6





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


upewnij sie ze sa tworzone pliki z tymi ciastkami, jesli nie to stworz jakies z takim dostepem zeby apache/php mogl do nich zapisywac
Go to the top of the page
+Quote Post
tomekmvr
post 15.09.2010, 16:52:45
Post #7





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

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


Cały czas popełniasz ten sam błąd, nie potrzebnie pobierasz dane o sesji przy drugim wywołaniu curla, masz wysłać te dane co pobrałeś po pierwszym wywołaniu.


--------------------
Go to the top of the page
+Quote Post
nitro11
post 16.09.2010, 01:46:39
Post #8





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Poprawiłem, ale dalej lipa:

  1. $url = 'http://www.com.pl';
  2.  
  3. $ch = curl_init();
  4.  
  5. // SET URL FOR THE POST FORM LOGIN
  6. curl_setopt($ch, CURLOPT_URL, 'http://www.com.pl');
  7. define('USER_AGENT', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729)');
  8. curl_setopt ($ch, CURLOPT_POST, 1);
  9. curl_setopt ($ch, CURLOPT_POSTFIELDS, "user=m&pass=l");
  10. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  11. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  12. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  13. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  14. $store = curl_exec ($ch);
  15. curl_setopt($ch, CURLOPT_URL, $url);
  16. $content = curl_exec ($ch);
  17. var_dump($content);
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. $url = 'http://www.com.pl';
  26. $ch_e=curl_init($url);
  27. define('USER_AGENT', 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.0.6');
  28.  
  29. define('USER_AGENT', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729)');
  30. curl_setopt($ch_e, CURLOPT_RETURNTRANSFER, 1);
  31. curl_setopt($ch_e, CURLOPT_FOLLOWLOCATION, 1);
  32. curl_setopt($ch_e, CURLOPT_USERAGENT, USER_AGENT);
  33. curl_setopt($ch_e, CURLOPT_SSL_VERIFYPEER, FALSE);
  34. curl_setopt($ch_e, CURLOPT_SSL_VERIFYHOST, 2);
  35. //curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  36. //curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  37. //curl_setopt($ch_e, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cok.txt');
  38. $nazwa=curl_exec($ch_e);
  39. var_dump($nazwa);


W dodatku w pliku cookie.txt nic się nie zapisuje, odpowiednie prawa do plików ustawione.
Nie wiem o co chodzi ?
Go to the top of the page
+Quote Post
yevaud
post 16.09.2010, 03:52:37
Post #9





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


1. tego posta wysylaj tam gdzie powinien byc form wyslany, a nie na sama domene
od samego poczatku robisz curl_setopt($c, CURLOPT_URL, 'http://www.domena.pl'), a powinienes tego posta wysylac tam gdzie serwer przetwarza dane logowania, a nie tam gdzie pokazuje formularz
sprawdz jak form logowania ma action ustawiony i tam wysylaj

2. podczas obu wywolan uzywaj
  1. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');


obydwu na raz i wskazujacych na ten sam plik

a to jest złe winksmiley.jpg
  1. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  3. curl_setopt($ch, CURLOPT_COOKIEFILE, 'costam innego.txt');


3. jesli po wywolaniu logowania cookie.txt masz caly czas puste(a uprawnienia sa ok) to po prostu nie zalogowales sie poprawnie, wtedy jest pare w Twoim przypadku prawdopodobnych opcji:
a) wysylasz posta nie tam gdzie trzeba, po prostu nawet nie probojesz sie logowac
cool.gif wysylasz zly login/haslo, wiec sie nie logujesz
c) jest jeszcze jakis token ktorego nie wysylasz
d) serwer odrzuca Twojego posta bo nie lubi tego w jaki sposob mu podajesz np. curl_setopt($ch_e, CURLOPT_USERAGENT, USER_AGENT); nie uzywasz podczas proby logowania
Go to the top of the page
+Quote Post
nitro11
post 16.09.2010, 10:02:56
Post #10





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Formularz logowania jest i tak na stronie głównej (form action -> index.php)także było ok jednak nie loguje się.
Załączam tu aktualny kod z adresem www.
Może Tobie uda się jakoś połączyc, nawet nie zakładając konta powinienneś dostać
info że login i hasło nie pasuja, ja nie dostaje ani że pasują ani że nie pasują sad.gif

  1. $url = 'http://www.pp.god.com.pl/index.php';
  2.  
  3. $ch = curl_init();
  4.  
  5. // SET URL FOR THE POST FORM LOGIN
  6. curl_setopt($ch, CURLOPT_URL, 'http://www.pp.god.com.pl/index.php');
  7. define('USER_AGENT', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729)');
  8. curl_setopt ($ch, CURLOPT_POST, 1);
  9. curl_setopt ($ch, CURLOPT_POSTFIELDS, "user=m&pass=l");
  10. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  11. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  12. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  13. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  14. $store = curl_exec ($ch);
  15. curl_setopt($ch, CURLOPT_URL, $url);
  16. $content = curl_exec ($ch);
  17. var_dump($content);
  18.  
  19.  
  20.  
  21. $url = 'http://www.pp.god.com.pl/index.php';
  22. $ch_e=curl_init($url);
  23. define('USER_AGENT', 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.0.6');
  24.  
  25. define('USER_AGENT', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729)');
  26. curl_setopt($ch_e, CURLOPT_RETURNTRANSFER, 1);
  27. curl_setopt($ch_e, CURLOPT_FOLLOWLOCATION, 1);
  28. curl_setopt($ch_e, CURLOPT_USERAGENT, USER_AGENT);
  29. curl_setopt($ch_e, CURLOPT_SSL_VERIFYPEER, FALSE);
  30. curl_setopt($ch_e, CURLOPT_SSL_VERIFYHOST, 2);
  31. $nazwa=curl_exec($ch_e);
  32. var_dump($nazwa);
  33.  


Może ktoś spróbuje odpalić ten kod u siebie i napisze czy poszło ?

Ten post edytował nitro11 16.09.2010, 10:14:19
Go to the top of the page
+Quote Post
yevaud
post 16.09.2010, 13:32:19
Post #11





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


przeciez masz w tym fomularzu dodatkowe pola ktorych nie dodales
  1. curl_setopt ($ch, CURLOPT_POSTFIELDS, "user=m&pass=l&pp=1&req=log");


  1. <br /><span class="error">Błąd: Użytkownik nie znaleziony</span><br />
Go to the top of the page
+Quote Post
nitro11
post 16.09.2010, 13:45:04
Post #12





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Ale ze mnie gapa fest...
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: 14.08.2025 - 02:24