PHP cUrl auf Seite einloggen

Clocker 2800+

Lt. Commander
Registriert
Apr. 2007
Beiträge
1.409
Hi.

ich möchte mich mit einem php-Script (cURL) auf der Seite www.mystream.to einloggen (Benutzername + Passwort ist bekannt :))
und auf die Seite http://www.mystream.to/myftp aufrufen, und den Seiteninhalt (Quellcode) in eine Textdatei abspeichern.

Wie ist das möglich ?

Bekomme nämlich das einloggen auf der Seite nicht hin !v:(

Wer kann mir hier helfen ?

P.S. Hier noch mein derzeitiges Script:
PHP:
<?

//Die Session initialisieren
$ch = curl_init();

//Variablen setzen
$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$url = "http://www.mystream.to/login";
$arrSubmit = "sUsername=benutzer123&sPasswort=test123&login_submit=";
$cookies = "cookies.txt";


//Session Opionen setzen
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrSubmit);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//curl_setopt($ch, CURLOPT_FILE, $fp);


//Ausführen der Aktionen
curl_exec($ch);



//Variablen setzen
$url_2 = "http://www.mystream.to/myftp";

//Session Optionen setzen
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
#curl_setopt($ch, CURLOPT_NOBODY, 1);
#curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_URL, $url_2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrSubmit);

//Ausführen der Aktionen
curl_exec($ch);

//Session beenden
curl_close($ch);

?>
 
Zuletzt bearbeitet:
Erwartest du jetzt, dass wir das alles ausprobieren und dir dann eine fertige Lösung präsentieren?
Du solltest evtl. etwas spezifischer werden und das Problem eingrenzen, um dann eine konkrete Frage zu stellen.

Aber vielleicht findest du ja trotzdem jemanden der das für dich macht.. Wenn nicht, weisst du was du zu tun hast ;)
 
Vielleicht geht der Login nur wenn du erst auf die Startseite gehst und damit eine PHPSESSID im Cookie gesetzt wurde? Lass dir doch mal von Curl den Seiteninhalt ausgeben.
 
Mit welcher Funktion kann ich denn den Quellcode (Seiteninhalt) auslesen ?
 
Siehe http://de2.php.net/curl_exec :
Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Ist jedoch die Option CURLOPT_RETURNTRANSFER gesetzt so wird das Ergebnis des cURL-Transfers zurückgegeben, im Falle eines Fehlers FALSE.
Wenn du die besagte Option also auf TRUE setzt, wird ein String zurückgegeben, den du einfach ausgeben kannst mit echo.
Code:
...dein anderer code mit den curl_setopts...
curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);
$str = curl_exec($ch);
echo $str;
 
ansonsten quelltext angucken und wenns nen Formular ist mit Post variablen musst du die per curl übergeben damit du dich einloggen kannst.
 
Er übergibt ja schon per Post und mit curl?

Was mir aber grad auffällt: Wieso machst du bei der http://www.mystream.to/myftp nochmals ein POST mit den Benutzerdaten? Das darf man hier wohl nicht machen! Die Benutzerdaten sollten eh schon im Cookie bzw. der SessionID liegen.
 
Zuletzt bearbeitet:
Ok. Danke.

Jetzt gehts.

Die Funktion mit dem Quelltext auslesen muss ich noch testen...

Aber schonmal danke.

/edit:
Quellcode auslesen funktioniert perfekt.
Danke nochmal.
 
Zuletzt bearbeitet:
Zurück
Oben