lukelukeluke
Erfahrenes Mitglied
Hi,
Ich versuche auf einer Seite mit PHP/Curl einzulogen und dann etwas runterzuladen. Das ist eine Routine die ich sonst dauernd manuell machen müsste...
Habe sowas schonmal erfolgreich gemacht, da war die Seite aber einfacher aufgebaut. Nun habe ich eine Seite mit vielen Auto-Weiterleitungen und Javascripts die ich analysieren muss, was sich recht schwierig herausstellt...
Mein Code ist in etwa:
Leider hats bis jetzt nicht funktioniert, Login scheint zu gehen, komme dann aber nicht auf die Seite wie wenn ich in Firefox einloge, sondern auf irgendwelche Weiterleitungsseiten mit Javascripts.
Habe mit Firebug versucht den Login-Prozess von Firefox zu analysieren und mit PHP/Curl nachzubauen, ist aber nicht gelungen, weil Firebug irgendwie nicht richtig den Verlauf der POST-Requests speichert, resp. wenn auf eine andere Subdomain weitergeleitet wird kann ich nicht mehr auf die Daten zugreiffen. Wie macht ihr dass zu analysieren, was Firefox genau macht? Ich muss eigentlich nur wissen, welche Seiten Firefox mit welchen POST-Daten aufruft....
Ein Punkt der scheitern könnte: Das cookie, welches curl anlegt, sieht etwa so aus:
Wenn ich aber in Firebug schaue wie der Anfrage-Header aussieht, dann sehe ich sowas:
Wie ist diese Ausgabe von Firebug zu analysieren, also vorallem der Teil unter "Cookie"?
Ich versuche auf einer Seite mit PHP/Curl einzulogen und dann etwas runterzuladen. Das ist eine Routine die ich sonst dauernd manuell machen müsste...
Habe sowas schonmal erfolgreich gemacht, da war die Seite aber einfacher aufgebaut. Nun habe ich eine Seite mit vielen Auto-Weiterleitungen und Javascripts die ich analysieren muss, was sich recht schwierig herausstellt...
Mein Code ist in etwa:
Code:
$ch = curl_init();
function curl_page($url,$postfields) {
global $ch;
curl_setopt($ch,CURLOPT_URL,$url);
// Post some data
if($postfields != "") {
foreach($postfields as $key=>$value) { $fields_string .=
$key.'='.$value.'&'; }
rtrim($fields_string,'&');
curl_setopt($ch,CURLOPT_POST,count($postfields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
}
// Include Header in Output
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
// Follow 302 msgs
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
file_put_contents("response.txt",$response);
return $response;
}
$response = curl_page("http://domain.com/login.php","<Login-Post-Data>");
$response = curl_page("http://domain.com/main.php");
<Hier response auswerten>
Leider hats bis jetzt nicht funktioniert, Login scheint zu gehen, komme dann aber nicht auf die Seite wie wenn ich in Firefox einloge, sondern auf irgendwelche Weiterleitungsseiten mit Javascripts.
Habe mit Firebug versucht den Login-Prozess von Firefox zu analysieren und mit PHP/Curl nachzubauen, ist aber nicht gelungen, weil Firebug irgendwie nicht richtig den Verlauf der POST-Requests speichert, resp. wenn auf eine andere Subdomain weitergeleitet wird kann ich nicht mehr auf die Daten zugreiffen. Wie macht ihr dass zu analysieren, was Firefox genau macht? Ich muss eigentlich nur wissen, welche Seiten Firefox mit welchen POST-Daten aufruft....
Ein Punkt der scheitern könnte: Das cookie, welches curl anlegt, sieht etwa so aus:
Code:
domain.com FALSE / FALSE 1281111881 Account 1234567
domain.com FALSE / FALSE 1281111881 Login blablabla
Wenn ich aber in Firebug schaue wie der Anfrage-Header aussieht, dann sehe ich sowas:
Code:
Host domain.com
User-Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.1.10) Gecko/20100504 Firefox/3.5.10
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language de-de,de;q=0.8,en;q=0.5,en-us;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Cookie __bla1=blablabla; __bla2=bla.bla=(bla)|bla=(direct)|bla=(none); Account=1234567; Login=blablabla; __bla=blam und so weiter
Zuletzt bearbeitet: