Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Czy tag button moze blokowac logowanie curl
rad11
post 30.12.2014, 20:04:19
Post #1





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Tak jak w temacie czy <button> moze byc przyczyna ze logowanie curlem nie chce przejsc dalej?
Go to the top of the page
+Quote Post
by_ikar
post 30.12.2014, 21:37:19
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Nie, bo curl nie wykonuje kodu html, a wykonuje żądania http. Otwórz narzędzia developerskie w chrome/operze/ff i prześledź jak wykonywane jest żądanie logowania się i je odwzoruj curl'em.
Go to the top of the page
+Quote Post
rad11
post 30.12.2014, 21:49:21
Post #3





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


No wlasnie sledze i sledze i niemoge sie dosledzic tego:
https://www.strava.com/login

  1.  
  2. function getAuthenticityToken(){
  3. $fo = fopen('cookie.txt', 'w');
  4. fclose($fo);
  5. $ch = curl_init();
  6. $agent = $_SERVER["HTTP_USER_AGENT"];
  7. curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  8. curl_setopt($ch, CURLOPT_URL, 'https://www.strava.com/login');
  9. // curl_setopt($ch, CURLOPT_POST, 1);
  10. // curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  12. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  13. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  14. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  15. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  16. curl_setopt($ch, CURLOPT_REFERER, "http://www.strava.com");
  17. curl_setopt($ch, CURLOPT_HEADER, 0);
  18. $response = curl_exec($ch);
  19. curl_close ($ch);
  20.  
  21. preg_match_all('@<meta content=(.*?)>@', $response, $matches);
  22.  
  23. $authenticity_token = explode('content=', $matches[0][5]);
  24. $authenticity_token = explode('name=', $authenticity_token[1]);
  25. $authenticity_token = str_replace('"', '', $authenticity_token[0]);
  26. return $authenticity_token;
  27. }
  28.  
  29. function login($site, $email, $password){
  30.  
  31. $post_data ='email='.urlencode($email).'&password='.$password. '&authenticity_token='.urlencode(getAuthenticityToken()).'&plan=&utf8=%E2%9C%93';
  32.  
  33. $fo = fopen('cookie.txt', 'w');
  34. fclose($fo);
  35. $ch = curl_init();
  36. $agent = $_SERVER["HTTP_USER_AGENT"];
  37. curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  38. curl_setopt($ch, CURLOPT_URL, $site);
  39. curl_setopt($ch, CURLOPT_POST, 1);
  40. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  41. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  42. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  43. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  44. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  45. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  46. curl_setopt($ch, CURLOPT_REFERER, 'https://www.strava.com/login');
  47. curl_setopt($ch, CURLOPT_HEADER, 0);
  48. curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  49. $response = curl_exec($ch);
  50.  
  51. curl_close ($ch);
  52. return $response;
  53. }
  54. echo login('https://www.strava.com/login','x', 'x');


Jakies pomysly jak to inaczej rozwiazac?
Go to the top of the page
+Quote Post
SpiritCode
post 30.12.2014, 22:02:29
Post #4





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


Z logowaniem sprawa wygląda tak:
1. masz stronę z formularzem
2. z formularza dane posyłane są do podstrony która Cię loguje.

Musisz po prostu odpowiednie parametry wysłać na odpowiednią podstronę.
Tutaj z tego co widzę jest też jakiś token. Możesz mieć z nim problem jeśli go nie przechwycisz
Go to the top of the page
+Quote Post
rad11
post 30.12.2014, 22:03:42
Post #5





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Probowalem tez recznie w urlu dodac parametry i nic sie nie dzieje token dobrze przechwytuje. Niby po kliku te wszystkie dane ustawia w zakladce session, ale probowalem tez mienic w urlu na session ale ten sam efekt.

Ten post edytował rad11 30.12.2014, 22:06:06
Go to the top of the page
+Quote Post
SpiritCode
post 30.12.2014, 22:05:50
Post #6





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


na jaki url przekazujesz dane?
Go to the top of the page
+Quote Post
rad11
post 30.12.2014, 22:06:41
Post #7





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Probowalem z

https://www.strava.com/login

https://www.strava.com/session
Go to the top of the page
+Quote Post
SpiritCode
post 30.12.2014, 22:09:27
Post #8





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


powinieneś posyłać na /session
Sprawdziłem(nie mam konta) wydaje się być ok bo wywala mi, ze złe dane logowania podaję
Go to the top of the page
+Quote Post
rad11
post 12.01.2015, 09:54:41
Post #9





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


No tak z tym ze tak jak mowie probowalem i wysylac dane na /session i nic sie nie dzieje. Dodam ze mam komunikat ze session expired.

Wracam do tematu gdyż nadal nie udało mi się go rozwiązać, pomógłby mi kto dojść do tego jak przejsc przez ten formularz bo Ja nie mam zadnych pomyslow w tym temacie a curl tez kuleje u mnie ?

Ten post edytował rad11 30.12.2014, 22:15:42
Go to the top of the page
+Quote Post
SpiritCode
post 12.01.2015, 16:58:17
Post #10





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


Sam sobie odpowiedziałeś
Cytat
Dodam ze mam komunikat ze session expired.


Poproś administrację o stałe session hash lub generuj nowe za każdym razem.
Go to the top of the page
+Quote Post
pitu
post 12.01.2015, 17:53:17
Post #11





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


Przecież oni udostępniają api.


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
rad11
post 13.01.2015, 15:40:23
Post #12





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Pitu tak udostepniaja tylko, ze ja potrzebuje pobrac do tego API client id oraz client secret na podstawie podanego konta i hasla przez klienta.

Cytat
Poproś administrację o stałe session hash lub generuj nowe za każdym razem.


Co masz dokladnie na mysli i w czym mi to pomoze?

Ten post edytował rad11 13.01.2015, 16:41:58
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: 19.07.2025 - 08:13