Hallo,
Ich möchte mich per libcurl auf einer Seite einloggen. Nach dem Login kommt immer ein Redirect auf eine andere Seite. Wenn ich eingeloggt bin möchte ich gerne ein zip File speichern das dort liegt und nur erreichbar ist wenn ich eingeloggt bin. So sieht mein Code bisher aus:
Code:
<?php
//Die Session initialisieren
$ch = curl_init("https://webadresse.de");
//Session Optionen setzen
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/3.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, '10');
curl_setopt($ch, CURLOPT_PROXY, 'XXXXXXX');
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile.txt");
$result = curl_exec($ch);
$regex = '/<input type="hidden" name="lt" value="(.*)" \/>/i';
$ergebnis = '';
preg_match($regex, $result, $ergebnis);
$post = 'username=***&password=***<='.$ergebnis[1].'&_eventId=submit&';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
print_r ($info);
$fp = fopen("example_homepage.zip", "w");
curl_setopt($ch, CURLOPT_URL, "http://andereWebadresse.de");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
//Session beenden
curl_close($ch);
fclose($fp);
unlink('cookiefile.txt');
echo $result;
?>
Also folgendes geht:
Ich gehe das erste mal auf die Seite, dabei wird eine SessionID generiert. Diese lese ich per Regex aus und mache nochmal einen Post mit Benutzernamen, Passwort etc. auf dieselbe Adresse. Nun wird mir auch die folgende Seite angezeigt, die einen Redirect auf eine andere Seite macht. Ich komme aber über diese Redirectseite nicht hinaus. Eigentlich dachte ich, wenn ich einmal eingeloggt bin kann ich mit Curl auf die Unterseiten zugreifen. Dem scheint nicht so. Was muss ich tun damit ich an das Zip File rankomme?
Adressen und Anmeldedaten hab ich entfernt. Das der Login auf https ist und die folgenden Seiten auf http ist wirklich so.
Danke fürs Lesen