Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [cUrl] Logowanie na portalu poszkole
Forum PHP.pl > Forum > PHP
Sk0rp10n
Witam. Od dłuższego czasu staram się stworzyć skrypt który umożliwi mi zalogowanie się na portal poszkole i umożliwi mi pobranie informacji czy są jakieś nowe wiadomości czy nie. Lecz mam z tym pewien problem nie wiem czemu skrypt nie chce działać mam stworzony plik cookie.txt oraz skrypt niby powinien działać lecz jak zauważyłem nie aktualizuje on nawet tego pliku i brak reakcji jeśli chodzi o samo logowanie.

  1. <?
  2. $cookie = 'cookie.txt';
  3.  
  4. $cu = curl_init();
  5. curl_setopt($cu, CURLOPT_URL, "http://poszkole.pl/login");
  6. curl_setopt($cu, CURLOPT_COOKIEFILE, $cookie);
  7. curl_setopt($cu, CURLOPT_COOKIEJAR, $cookie);
  8. curl_setopt($cu, CURLOPT_COOKIE, $cookie);
  9. curl_setopt($cu, 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");
  10. curl_setopt($cu, CURLOPT_POST, 1);
  11. curl_setopt($cu, CURLOPT_POSTFIELDS, "email=emailllll&pass=hasloooo&reg=0&zapamietaj=1&submit=Zaloguj+mnie");
  12. curl_setopt($cu, CURLOPT_REFERER, "http://poszkole.pl/profil");
  13. curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
  14. curl_setopt($cu, CURLOPT_FOLLOWLOCATION, 1);
  15. $wys = curl_exec($cu);
  16. curl_close($cu);
  17. ?>


Prosiłbym o pomoc co może być nie tak. Hosting jakiego używam to cba jeśli ma to jakieś znaczenie. Z góry dziękuję za pomoc.
Sephirus
Wywal 8 linijkę - jest zbędna w 12 linijce zmień referer na "http://poszkole.pl/login".
Sk0rp10n
Dalej plik cookie nie jest aktualizowany dodałem echo przy "$wys" myślałem że temu nie wyświetla strony lecz nic to nie zmieniło oraz ustawiłem na inny USERAGENT już pobrany nie ze strony a z "Live HTTP Headers".

  1. <?php
  2. $cookie = 'cookie.txt';
  3.  
  4. $cu = curl_init();
  5. curl_setopt($cu, CURLOPT_URL, "http://poszkole.pl/login");
  6. curl_setopt($cu, CURLOPT_COOKIEFILE, $cookie);
  7. curl_setopt($cu, CURLOPT_COOKIEJAR, $cookie);
  8. curl_setopt($cu, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1");
  9. curl_setopt($cu, CURLOPT_POST, 1);
  10. curl_setopt($cu, CURLOPT_POSTFIELDS, "email=*********&pass=*********&reg=0&zapamietaj=1&submit=Zaloguj+mnie");
  11. curl_setopt($cu, CURLOPT_REFERER, "http://poszkole.pl/login");
  12. curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
  13. curl_setopt($cu, CURLOPT_FOLLOWLOCATION, 1);
  14. echo $wys = curl_exec($cu);
  15. curl_close($cu);
  16. ?>


Szczerze nie mam pomysłów czemu nie może on zapisać cookiesów a jest mi to potrzebne do dalszej części skryptu.
kaki2308
  1. <?php
  2.  
  3. function createPostString($aPostFields) {
  4. foreach ($aPostFields as $key => $value) {
  5. $aPostFields[$key] = urlencode($key) . '=' . urlencode($value);
  6. }
  7. return implode('&', $aPostFields);
  8. }
  9.  
  10.  
  11. $postFields['email'] = 'xxx';
  12. $postFields['pass'] = '2323';
  13. $postFields['reg'] = '0';
  14. $postFields['submit'] = 'Zaloguj mnie';
  15.  
  16. $ch = curl_init();
  17. curl_setopt($ch, CURLOPT_URL, 'http://poszkole.pl/login');
  18. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2');
  19. curl_setopt($ch, CURLOPT_POST, 1);
  20. curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields));
  21. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
  22. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
  23. curl_setopt($ch, CURLOPT_REFERER, 'http://poszkole.pl/login');
  24. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  25. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  26. echo curl_exec($ch);
  27. curl_close($ch);
  28. ?>


dirname(__FILE__) i działa
Sk0rp10n
Może ktoś to u siebie sprawdzić jak coś mogę podesłać konto na ten skrypt lecz u mnie dalek plik "cookie" nie zmienia zawartości (ustawione w skrypcie jest pod "cookie.txt").
kaki2308
A próbowałeś dir_name tak jak mówiłem?

  1. <?
  2. $cookie = dirname(__FILE__) . '/cookie.txt';
  3.  
  4. $cu = curl_init();
  5. curl_setopt($cu, CURLOPT_URL, "http://poszkole.pl/login");
  6. curl_setopt($cu, CURLOPT_COOKIEFILE, $cookie);
  7. curl_setopt($cu, CURLOPT_COOKIEJAR, $cookie);
  8. curl_setopt($cu, CURLOPT_COOKIE, $cookie);
  9. curl_setopt($cu, 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");
  10. curl_setopt($cu, CURLOPT_POST, 1);
  11. curl_setopt($cu, CURLOPT_POSTFIELDS, "email=mail&pass=pass&reg=0&zapamietaj=1&submit=Zaloguj+mnie");
  12. curl_setopt($cu, CURLOPT_REFERER, "http://poszkole.pl/profil");
  13. curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
  14. curl_setopt($cu, CURLOPT_FOLLOWLOCATION, 1);
  15. $wys = curl_exec($cu);
  16. curl_close($cu);
  17. echo $wys;
  18. ?>


Bo mi wszystko tak działa, pojawia się plik cookie.txt z cookie. Skrypt odpalam na xampp.
Sk0rp10n
Właśnie o to chodzi że nawet skorzystałem z Twego kodu i dalej nic to nie zmieniło chyba że to przez hosting lecz inaczej jak się nie mylę wyskoczył by błąd gdyby cba nie mogło czegoś obsłużyć tak??
kaki2308
Cba nie posiada cURL'a.
Niewiele darmowych serwisów hostingowych go ma.
foxbond
na cba możesz użyć funkcji fsocketopen
Sk0rp10n
Dzięki wszystkim w takim razie poszukam innego hostingu.
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.