Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][cURL]zdalne logowanie
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Grzesiekk94
Witam, potrzebuję skryptu do zdalnego zalogowania na stronie i przeprowadzanie na niej pewnych operacji, pisałem już, szukałem, ale nikt nie chciał mi pomóc... Sam napisałem coś takiego:

  1. <?php
  2. $config['address'] = 'http://forum.php.pl/logowanie.html';
  3.  
  4. $path['cookie'] = '/cookies.txt';
  5.  
  6. $ch = curl_init($config['address']);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($ch, CURLOPT_HEADER, 1);
  9. curl_setopt($ch, CURLOPT_POST, 1);
  10. curl_setopt($ch, CURLOPT_POSTFIELDS, "referer=http%3A%2F%2Fforum.php.pl%2Findex.php%3F&UserName=EXAMPLE&PassWord=EXAMPLE&CookieDate=1");
  11. curl_setopt($ch, CURLOPT_COOKIEFILE, $path['cookie']);
  12. curl_setopt($ch, CURLOPT_COOKIEJAR, $path['cookie']);
  13. $result = curl_exec($ch);
  14. curl_close($ch);
  15.  
  16. echo $result;
  17. ?>


jednak po wpisaniu prawidłowego loginu i hasła pojawia się ponownie strona logowania. Nie umiem tego naprawić, może ktoś tu pomoże? Myślę, ze jak już się zaloguję, to z innymi operacjami nie będę miał problemu
markuz
Kod
curl 'http://forum.php.pl/index.php?act=Login&CODE=01&CookieDate=1' -H 'Host: forum.php.pl' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Referer: http://forum.php.pl/' -H 'Cookie: forum_session_id=2cb1eec94da30c4f44ebaf373c4d08d7; __utma=155919291.1024970930.1443557590.1443557550.1443557550.1; __utmb=195519291.1.10.1453557590; __utmc=155919291; __utmz=155919291.1443557590.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1' -H 'Connection: keep-alive' --data 'UserName=Markuz&PassWord=xxx&x=24&y=6'


U mnie tak wygląda curl do logowania, skąd wziąłeś link logowanie.html?
Polecam używać Firefox, Narzędzia -> Sieć (Network monitor) i tam sobie przeglądaj co jest wysyłane i gdzie.

PS. Logowanie to akcja jak każda inna, będziesz miał problemy cały czas - na tym polega programowanie smile.gif
Grzesiekk94
To jest kod php? Link logowanie.html wyskakuje po błędnym wpisaniu hasła. Wiem o tym, dzięki, ale i tak niewiele z tego rozumiem...

W takim razie jeszcze jedni pytanie, skąd będę wiedział, że się zalogowalem? I czy nie powinienem mieć innego cookie? Jeśli tak, to jakie?
markuz
Nie, to curl wygenerowany przez przeglądarkę. (PPM -> Copy as cURL), możesz go odpalić w CLI albo w exec.
Cookie się zmienia, jak wiesz jest to między innymi "id" sesji która jest zapisana po stronie serwera. Możesz je zapisywać do pliku tak jak zrobiłeś to w pierwszym poście.
Co do sprawdzania poprawności możesz wyłapywać za pomocą strpos czy istnieje tekst o treści np. "Zostałeś zalogowany" albo "Niepoprawne dane" itp.
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-2024 Invision Power Services, Inc.