Logowanie w Curl na rapidshare

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:

| Login: | |
| Password: | |
| |

[/code] Wykombinowałem coś takiego ale nie działa:

[code]<? $cookie = dirname(__FILE__) .’/cookie’; $login = “login”; $haslo = “haslo”; $ch = curl_init(“https://ssl.rapidshare.com/premiumzone.html”); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, “login=”.$login."&password=".$haslo); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); echo curl_exec($ch); curl_close($ch); ?>

Jako adres podaj:

https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi

Niestety dalej nie działa. Pokazuje się błąd: Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /home/pcworld/public_html/logowanie.php on line 9

Spróbuj wyrzucić linię z FOLLOWLOCATION. Jeśli bez niej skrypt nie będzie chciał prawidłowo działać, to tu jest (troszkę długie) rozwiązanie:

http://pl.php.net/manual/pl/function.cu … .php#79787

Mam coś takiego lecz dalej nie działa:

<?php


$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_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

$xxx = curl_exec($curl);

curl_setopt($curl, CURLOPT_POSTFIELDS, "login=1234&password=1234"); # form params that'll be used to get form results

$xxx = curl_exec($curl);


curl_close ($curl);

echo $xxx;

?>

Na serwerze isx.pl wyskakuje błąd w 9 linijce ale strona się dalej ładuje lecz nie da rady sie zalogować. Na home.pl nic się nie dzieje - nie loguje mnie ani nic się nie wyświetla.

A sprawdzałeś tą funkcję z linka?

Hmmm… masz dwa razy:

$xxx = curl_exec($curl);

usuń pierwsze i na koniec daj na początku daj

error_reporting(E_ALL);

wtedy na obu serwerach będą wyświetlane ewentualne błędy

Zrobiłem tak jak mówiłeś. Teraz mam taki 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_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

$xxx = curl_exec($curl);

curl_setopt($curl, CURLOPT_POSTFIELDS, "login=4233317&password=rapidshare1"); # form params that'll be used to get form results

curl_close ($curl);

echo $xxx;

?>

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

W dniu 05.05.2008 , o godzinie 20:19 został dopisany post przez radmistrz2

Na kraasnalu kod nie wywala błędów. Błąd wywala rapidshare: “POST method called without content”

<?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);


    curl_close ($curl);

    echo $xxx;

    ?>

Miałeś złą kolejność. Najpierw wszystkie SETOPTy, a dopiero potem wykonanie wszystkiego.

ok dzięki działa. Teraz mam kolejny problem. Nie mam pojęcia jak zintegrować skrypt, aby curlem pobierał mi plik dostępny po zalogowaniu. Oto skrypt do pobierania:

$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:

<?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ł?

Hmmm… aczkolwiek nie robiłem nigdy tak, myślę że się da. Wyślij mi na priv swoje hasło do rapida, bo musiałbym sprawdzać kod na bieżąco, a sam nie mam konta Premium. Później będziesz mógł sobie to hasło zmienić :slight_smile:

Pełne rozwiązanie problemu macie tam:

http://www.webmaster-forum.pl/topics25/logowanie-do-rapidshare-vt95.htm#579

Pozdro