Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie przez PHP na inną strone WWW
Forum PHP.pl > Forum > Przedszkole
dram
Witam. https://store.steampowered.com/login/?snr=1_4_4__11

Chciałbym się zalogować tutaj aby potem wykonywać określone czynności skryptem(będę wysłał zaproszenie). Prosiłbym o jakieś wskazówki tak abym mógł się zalogować na stronę.
Nie mam zielonego pojęcia jak się za to zabrać, wujek (google) milczy w tych sprawach
darko
Cytat(dram @ 25.10.2011, 22:37:40 ) *
wujek (google) milczy w tych sprawach

Nieprawda
dram
Właśnie przed momentem to znalazłem. Narazie dzięki bedę pisać jak nie będę wiedział
solr
Jak nie umiesz pytać, to nie dostaniesz odpowiedzi. Zainteresuj się czyś takim jak CURL. Do tego wyrażenia regularne. Pomocne mogą być pluginy do Firefoxa: Webdeveloper (m. in. pokazuje szczegóły formularza) i Live HTTP Headers (do śledzenia żądań i odpowiedzi). Generalnie to Twoje zadanie polega na tym, żeby wysyłać żądanie i za pomocą wyrażeń regularnych wyodrębnić niezbędne dane itd, aż dostaniesz to co chcesz. Jeśli dopiero zaczynasz zabawę z programowaniem (a po pytaniu wnioskuje, że tak), to będzie ciężko.

Najlepiej to sobie kup i przeczytaj (i zrozum): http://www.amazon.com/Webbots-Spiders-Scre...;sr=1-2-catcorr lub
http://www.phparch.com/books/phparchitects...aping-with-php/
Ulysess
wykorzystując biblioteke CURLa wysyłasz postem dane potrzebne do zalogowania, do tego przydatny staje się plugin live http headers którym możesz zweryfikować jakie dane są wysyłane przy logowaniu na strone, dalej to już pobierasz treść strony przetwarzasz ją i tyle
dram
Cytat(Ulysess @ 25.10.2011, 23:03:51 ) *
wykorzystując biblioteke CURLa wysyłasz postem dane potrzebne do zalogowania, do tego przydatny staje się plugin live http headers którym możesz zweryfikować jakie dane są wysyłane przy logowaniu na strone, dalej to już pobierasz treść strony przetwarzasz ją i tyle


W jaki sposób?
darko
Poszukaj i przejrzyj kilka pierwszych wyników.
dram
Wybaczcie że odświeżam ale zabrałem się za to otóż tak:
  1. $postFields['username'] = 'xxx';
  2. $postFields['password'] = 'xxxx';
  3. $ch = curl_init('https://store.steampowered.com/login/');
  4. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  5. curl_exec($ch);
  6. curl_close($ch)


Próbuje w ten sposób jednak nic się nie dzieje tzn w jak otwieram przez przeglądarke ten plik php z tym skryptem to otwiera mi się strona https://store.steampowered.com/login/
jednakże z ekranem logowania...

  1. <input name="snr">
  2. 1_60_4__60
  3. <input name="redir">
  4. <a href="http://store.steampowered.com/" target="_blank">http://store.steampowered.com/</a>
  5.  
  6. <input id="input_username" name="username">
  7. <input id="input_password" name="password">
  8.  
  9. <input id="emailauth" name="emailauth"> <!-- nie widac tych 2 rzeczy(tej i tej nizej)
  10. <input id="emailsteamid" name="emailsteamid">


Wyciągnąłem coś takiego, pierwsze dwa inputy są uzupełnione tym co napisałem tam(pod inputem)
dwa środkowe to są jako jedyne widoczne inputy na stronie.
dwa ostatnie status hidden(nie widać ich i brak domyślnie wpisanych wartości)

Próbowałem nawet wszystko uzupełniać nadal to samo pokazuje mi się strona logowania cały czas.

Pomysły jakieś?
darko
Może mają zabezpieczenie przed takimi próbami logowania?
// edit
jeśli to logowanie bezpieczne to zerknij tutaj
dram
  1. $postFields['username'] = 'xxx';
  2. $postFields['password'] = 'xxxx';
  3. $ch = curl_init('https://store.steampowered.com/login/');
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  6. curl_exec($ch);
  7. curl_close($ch);


Nadal to samo tj. Widać strone po angielsku.
darko
Nie chcę Cię prowadzić jak dziecko we mgle, ale jak dla mnie np. to:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
jest różne temu:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
ps. wygeneruj sobie tzw self-signed SSL, np. za pomocą OpenSSL
dram
spróbowałem bez generowania ssl bo coś mi nie wychodzi.

  1. $zrodlo_ssl = getcwd() . "/store.steampowered.crt";
  2. $ch = curl_init('https://store.steampowered.com/login/');
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  6. curl_setopt($ch, CURLOPT_CAINFO, $zrodlo_ssl);
  7. curl_exec($ch);
  8. curl_close($ch);


Teraz wynikiem jest pusta strona (biała kartka tongue.gif)

Nie mam sił na to
Alson
Cytat(dram @ 1.11.2011, 21:37:40 ) *
spróbowałem bez generowania ssl bo coś mi nie wychodzi.

  1. $zrodlo_ssl = getcwd() . "/store.steampowered.crt";
  2. $ch = curl_init('https://store.steampowered.com/login/');
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  6. curl_setopt($ch, CURLOPT_CAINFO, $zrodlo_ssl);
  7. curl_exec($ch);
  8. echo($ch); // taki maly lolz ;]
  9. curl_close($ch);


Teraz wynikiem jest pusta strona (biała kartka tongue.gif)

Nie mam sił na to


Powodzenia.
dram
Up@ twój kod:
  1. $zrodlo_ssl = getcwd() . "/store.steampowered.crt";
  2. $ch = curl_init('https://store.steampowered.com/login/');
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  6. curl_setopt($ch, CURLOPT_CAINFO, $zrodlo_ssl);
  7. curl_exec($ch);
  8. echo($ch); // taki maly lolz ;]
  9. curl_close($ch);


Daje na stronie:
  1. Resource id #1
darko
Nie mam czasu zgłębić problemu, więc strzelam. Może spróbuj skorzystać z bibliotek openID i użyj api społeczności?
Alson
Cytat(dram @ 2.11.2011, 23:01:23 ) *
Up@ twój kod:
  1. $zrodlo_ssl = getcwd() . "/store.steampowered.crt";
  2. $ch = curl_init('https://store.steampowered.com/login/');
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  6. curl_setopt($ch, CURLOPT_CAINFO, $zrodlo_ssl);
  7. curl_exec($ch);
  8. echo($ch); // taki maly lolz ;]
  9. curl_close($ch);


Daje na stronie:
  1. Resource id #1


Do daj

  1. $zrodlo_ssl = getcwd() . "/store.steampowered.crt";
  2. $ch = curl_init('https://store.steampowered.com/login/');
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  6. curl_setopt($ch, CURLOPT_CAINFO, $zrodlo_ssl);
  7. curl_exec($ch);
  8. print_r($ch); // taki maly lolz ;]
  9. curl_close($ch);


powinno coś wyświetlić.

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.