Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Curl autologowanie
Forum PHP.pl > Forum > Przedszkole
kingofspace
Witam. mam problem próbuje napisać skrypt automatycznej obsługi czegoś tam. i mam kilk apytań

Skrypt wymaga zalogowania, autoryzacja urzytkownika jest dokonywana przy sesji

Moj cel jest taki

skrypt w curl musi sie zalogowac na strone i wyslać dane postem (spreparowane przezemnie) do pliku php
wyslanie danych postem to pikus ale zalogowanie się to problem
Matimor
Co w logowaniu widzisz takiego trudnego? Przykładowo podaje Ci skrypt niżej.

  1. <form action="#" method="post">
  2. Login: <input type="text" name="username" /><br />
  3. Hasło: <input type="text" name="password" /><br />
  4. <input type="submit" name="submit_login" value="Zaloguj" /><br />
  5. </form>
  6.  
  7. <?php
  8. if(isset($_POST['submit_login']))
  9. {
  10. $login = strip_tags($_POST['username']);
  11. $pass = strip_tags($_POST['password']);
  12.  
  13. if($login != '')
  14. {
  15. if($pass != '')
  16. {
  17. //Tutaj dodasz sprawdzanie loginu i hasla z mysql
  18. $_SESSION['Zalogowany'] = true;
  19. header("Location: index.php");
  20. } else { exit('Podaj haslo !'); }
  21. } else { exit('Podaj login !'); }
  22. }
  23. ?>



Coś mniej więcej takiego możesz zrobić, lub poszukaj gotowego skryptu w google winksmiley.jpg
kingofspace
Kolego nie chodzi mi oto.

stworzylem skrypt w curl

  1. <?php
  2. $url = "http://www.hit4u.net/login.php";
  3. $ch = curl_init(); // inicjalizacja curla
  4. curl_setopt($ch, CURLOPT_URL,$url); // ustawienie urla
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // zwróć w postaci zmiennej
  6. curl_setopt($ch, CURLOPT_TIMEOUT, 3); // czas oczekiwania
  7. curl_setopt($ch, CURLOPT_POST, 1);//przesylamy metodą post
  8. curl_setopt($ch, CURLOPT_POSTFIELDS, 'user=mojlogin&haslo=mojehaslo'); //dane do wyslania
  9. curl_setopt($ch,CURLOPT_REFERER,$url);
  10. curl_exec($ch); // wykonanie skryptu
  11. curl_close($ch);
  12.  
  13. $url2 = "http://hit4u.net/";
  14.  
  15. $ch = curl_init(); // inicjalizacja curla
  16. curl_setopt($ch, CURLOPT_URL,$url2); // ustawienie urla
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // zwróć w postaci zmiennej
  18. curl_setopt($ch, CURLOPT_TIMEOUT, 3); // czas oczekiwania
  19. curl_setopt($ch,CURLOPT_REFERER,$url);
  20. $result = curl_exec($ch); // wykonanie skryptu
  21. curl_close($ch);
  22. $result=str_replace("\"/","\"http://hit4u.net/",$result); //podmieniam adresy względne na bezwzględne
  23.  
  24. print_r($result);
  25. ?>


W sumie wyświetla mi się strona na ktorą chcialem sie zalogowac.

Lecz nie dziala ponieważ mnie nie loguj:D jak zrobic aby logowało
matiszon
Sprawdź dokładnie co wysyła formularz może są ukryte pola do takich akcji polecam Live HTTP headers addon do Firefoxa winksmiley.jpg

@down Aha to chyba że tongue.gif
kingofspace
ja pisalem ten skrypt logownaia w sumie:D i wysylane jest tylko username i haslo
matiszon
Zbadaj tą funkcje używam jej i działa elegancko winksmiley.jpg

  1. function curl_posting($url,$data,$proxy,$proxystatus){
  2. $fp = fopen("cookie.txt", "w");
  3. fclose($fp);
  4. $login = curl_init();
  5. curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
  6. curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
  7. curl_setopt($login, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7");
  8. curl_setopt($login, CURLOPT_TIMEOUT, 400);
  9. curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
  10. if ($proxystatus == 'on') {
  11. curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE);
  12. curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE);
  13. curl_setopt($login, CURLOPT_PROXY, $proxy);
  14. }
  15. curl_setopt($login, CURLOPT_URL, $url);
  16. curl_setopt($login, CURLOPT_HEADER, 0);
  17. curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  18. curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
  19. curl_setopt($login, CURLOPT_POST, TRUE);
  20. curl_setopt($login, CURLOPT_POSTFIELDS, $data);
  21. $end = curl_exec ($login);
  22. curl_close ($login);
  23. unset($login);
  24. return $end;
  25. }
Matimor
To musisz do tego chyba sesje stworzyć, dziwne, że Cię nie loguje skoro nie tworzysz sesji zalogowanego. Stwóz sesje i daj warunek, jeżeli sesja Zalogowany jest true to coś tam się stanie,
kingofspace
http://wklejto.pl/57442 to jest link do tresci ukazanych prez http analizera

ja niemam dostepu do kodu zrodlowego strony na ktorą chce sie zalogowac plik napisany w curl jest na innym serwerze!! a potrzebuje sie zalogowac poto a by miec dostep do tresci ktore wymagają autoryzacji.
matiszon
Kod
user=dfhdfhdfh77%40gmail.com&haslo=gbjkjf37&submit.x=37&submit.y=15

To jest post
w tej funkcji którą dałem powinno wyglądać to tak

curl_posting('http://hit4u.net/login.php', "user=dfhdfhdfh77%40gmail.com&haslo=gbjkjf37&submit.x=37&submit.y=15", '', 'off');
kingofspace
uzylem tą funkcje ale nic mi się nie wyswietla biała strona
matiszon
a użyłeś echo ?
kingofspace
tak
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.