Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie w Curl na rapidshare
Forum PHP.pl > Forum > PHP
radmistrz2
Witam. Chce zrobić skrypt, który automatycznie zaloguje mnie na rapidshare i sprawdzi kilka rzeczy. Mam 1 problem. Nie wiem czy da sie zalogowremiumzone.html wygląda następująco:
  1. <form action="https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi" method="post"><table>
  2. <tr><td>Login:</td><td><input type="text" name="login"></td></tr><tr><td>Password:</td><td><input type="password" name="password"></td></tr>
  3. <tr><td colspan="2" align="center"><input type="submit" value="SSL-encrypted Login"></td></tr></table></form>

Wykombinowałem coś takiego ale nie działa:

  1. <?
  2. $cookie = dirname(__FILE__) .'/cookie';
  3. $login = "login";
  4. $haslo = "haslo";
  5. $ch = curl_init("https://ssl.rapidshare.com/premiumzone.html");
  6. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
  7. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
  8. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  9. curl_setopt($ch, CURLOPT_POST, 1);
  10. curl_setopt($ch, CURLOPT_POSTFIELDS, "login=".$login."&password=".$haslo);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  12. echo curl_exec($ch);
  13. curl_close($ch);
  14. ?>
crackcomm
po 1 łącz się do https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi
  1. <?php
  2. $cookie = "cookie.txt";
  3. $c = curl_init('https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi');
  4. curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
  5. curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
  6. curl_setopt($c, CURLOPT_URL, 'https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi');
  7. curl_setopt($c, 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");
  8. curl_setopt($c, CURLOPT_POST, 1);
  9. curl_setopt($c, CURLOPT_POSTFIELDS, "login=".$login."&password=".$haslo);
  10. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  11. ?>
radmistrz2
Teraz mam taki kod:
  1. <?php error_reporting(E_ALL);
  2.  
  3. $curl = curl_init('https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi');
  4. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  5. curl_setopt($curl, CURLOPT_HEADER, 0);
  6. curl_setopt($curl, CURLOPT_POST, true);
  7. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  8. curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
  9. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  10. curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");
  11. curl_setopt($curl, CURLOPT_COOKIEJAR, "cookiefile"); # SAME cookiefile
  12. curl_setopt($curl, CURLOPT_URL, "https://ssl.rapidshare.com/premiumzone.html"); # this is where you first time connect - GET method authorization in my case, if you have POST - need to edit code a bit
  13. $xxx = curl_exec($curl);
  14. curl_setopt($curl, CURLOPT_POSTFIELDS, "login=4233317&password=rapidshare1"); # form params that'll be used to get form results
  15. curl_close ($curl);
  16. echo $xxx;
  17. ?>

Niestety strona wywala mi błąd: "POST method called without content" a kod błąd w 9 linijce

Czy ktoś mógłby to przetestować na swoim serwerze?
krzywy36
radmistrz, ja bym na Twoim miejscu nie podawał prawdziwego loginu i hasła haha.gif
radmistrz2
Nic do stracenia bo konto jest nie ważne a pliki które wytuploadowałem nie są mi potrzebne. No ale zmienię hasło winksmiley.jpg

Na kraasnalu kod nie wywala błędów. Błąd wywala rapidshare: "POST method called without content"
netmare
  1. <?php
  2. $xxx = curl_exec($curl);
  3. curl_setopt($curl, CURLOPT_POSTFIELDS, "login=4233317&password=rapidshare1"); # form params that'll be used to get form results
  4. ?>


Chyba Ci się kolego kolejność tych linijek pomyliła tongue.gif
radmistrz2
tak już to obczaiłem. Teraz mam kolejny problem. Nie mam pojęcia jak zintegrować skrypt, aby curlem pobierał mi plik dostępny po zalogowaniu. Oto skrypt do pobierania:

Kod
$ch = curl_init('http://rs258tg.rapidshare.com/files/112707895/dl/Matura_2008_Polski_Odpowiedzi_Fabi_GT.rar'); //przykładowy link do pliku z rapidshare
$fh = fopen('Matura_2008_Polski_Odpowiedzi_Fabi_GT.rar', 'w');//przykladowa nazwa
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_exec($ch);
fclose($fh);
curl_close($ch);


Jeśli dam to tak:

Kod
    <?php error_reporting(E_ALL);

    $curl = curl_init('https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi');
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");
    curl_setopt($curl, CURLOPT_COOKIEJAR, "cookiefile"); # SAME cookiefile
    curl_setopt($curl, CURLOPT_POSTFIELDS, "login=4233317&password=rapidshare1");
$xxx = curl_exec($curl);
   $ch = curl_init('http://rs258tg.rapidshare.com/files/112707895/dl/Matura_2008_Polski_Odpowiedzi_Fabi_GT.rar'); //przykładowy link do pliku z rapidshare
$fh = fopen('Matura_2008_Polski_Odpowiedzi_Fabi_GT.rar', 'w');//przykladowa nazwa
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_exec($ch);
fclose($fh);
curl_close($ch);
    curl_close ($curl);
    echo $xxx;
    ?>

Skopiuje mi stronę, która wyświetli się gdy nie jestem zalogowany. Z tego co wiem to wina ciasteczek a 2 zadania nie mają ze sobą związku. Czy da sie jakoś zintegrować skrypt tak, aby działał?
bim2
Musisz podać pełną ściezkę do cookiefile, czyli np
"./cookiefile"
lub
"/home/domains/strona.pl/rapid/cookiefile"
najprościej bedzie
  1. <?php
  2. dirname(__FILE__);
  3. ?>
radmistrz2
problem z logowaniem już rozwiązalem - poprawny skrypt jest w moim ostatnom poscie. Teraz chcę zintegrować 2 skrypty, lecz nie potrafię.
netmare
Tak jak bim2 napisał, musisz zająć się ciachami tak, aby ciacha oderbane przez curl przy logowaniu, przesłać do serwera przy pobieraniu pliku winksmiley.jpg
bim2
Upraszczając. Pierwszy skrypt do logowania, zapisze sobie ciasteczka do pliku cookiecache smile.gif Teraz czas na drugi skrypt, który zobaczy jakie te ciasteczka są i je wyśle do strony (w tym wypadku do pobierania pliku). A następnie jeśli będziesz chciał zapisze sobie następne do jakiego pliku chcesz.
radmistrz2
Problem rozwiązany
icetab
a jak ten drugi skrypt ma zobaczyć i je pobrać te ciasteczka jaka funkcja ?
chez
napisałem ostatnio identyczny skrypt, jeżeli jest ktoś zainteresowany kodem pisać na PW smile.gif
icetab
zal to nie allegro

jego PM

Kod
witaj,
Jaką pomocą ? Jako iż jesteś pierwszym zainteresowanym skryptem mogę sprzedać Ci go na wyłączność (nie znajdziesz takiego drugiego w necie smile.gif ) + baza danych, ale wiadomo, wtedy cena będzie wyższa.

Pozdrawiam,
chez (http://chez.ovh.org/)
chez
ehh, myślałem że chodzi Ci o skrypt który dałem w ogłoszeniach a nie o ten smile.gif było trzeba pisać że chodzi Ci o ten.

a żal możesz mówić do kolegów na podwórku
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.