Ergebnis 1 bis 7 von 7

Thema: [PHP] Login auf Website mit cURL und Download

  1. #1
    Prinz(essin) Avatar von Lizzard
    Registriert seit
    19.02.2006
    Ort
    München
    Beiträge
    788
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard [PHP] Login auf Website mit cURL und Download

    Servus,

    stehe im Moment vor einem nicht ganz einfachen Problem bzgl. cURL und Download.

    Ich verwalte eine recht große Website, die mehrere XML-Dateien verarbeitet, die auf einem anderen Server liegen. Dies war auch bisher nie ein Problem, doch seit kurzem sind diese XML-Daten nur noch nach einem Login downloadbar. Folglich funktioniert das Script nicht mehr wie bisher.

    Da ich die Zugangsdaten natürlich besitze, dachte ich mir, das Script um einen automatischen Login auf der Seite per cURL zu erweitern, um danach wie gewohnt die XML-Dateien herunterzuladen.

    Doch irgendwie scheint der Login nicht zu funktionieren, oder die eingeloggte Session bleibt nicht lang genug erhalten. Ich kann nicht genau sagen wo das Problem liegt, da cURL keine Fehlermeldungen ausgibt.
    Ich sehe nur, dass sich trotz vermeidlich eingeloggtem Script die XML-Dateien nicht downloaden lassen. Ich hab bisher noch keine Erfahrung mit cURL, nehme also an, dass ich irgendwas falsch mache

    Hier ist der relevante Teil meines Scripts:

    PHP-Code:

    [...]

    // INIT CURL
    $ch curl_init();

    // SET URL FOR THE POST FORM LOGIN
    curl_setopt($chCURLOPT_URL'http://LOGINSEITE/LOGIN');

    // ENABLE HTTP POST
    curl_setopt ($chCURLOPT_POST1);

    // SET POST PARAMETERS : FORM VALUES FOR EACH FIELD
    curl_setopt ($chCURLOPT_POSTFIELDS'loginControl$textBoxID=USERNAME&loginControl$textBoxPW=PASSWORT');

    // IMITATE CLASSIC BROWSER'S BEHAVIOUR : HANDLE COOKIES
    curl_setopt ($chCURLOPT_COOKIEJAR'cookie.txt');

    # Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
    # not to print out the results of its query.
    # Instead, it will return the results as a string return value
    # from curl_exec() instead of the usual true/false.
    curl_setopt ($chCURLOPT_RETURNTRANSFER1);

    // EXECUTE 1st REQUEST (FORM LOGIN)
    $store curl_exec ($ch);

    // XML Dateien kopieren

    $Links getTable("SELECT spielplan,tabelle,team,saison FROM spielplan_links");
    for(
    $i=0;$i<count($Links);$i++)
    {
        
    $xmlfilename "Spielplan_".str_replace("ä","a",$Links[$i]['team'])."_".$Links[$i]['saison'].".xml";
        
    copy($Links[$i]['spielplan'],"../xml/".$xmlfilename);
        echo 
    $xmlfilename." kopiert.<br>";
        
    $xmlfilename "Tabelle_".str_replace("ä","a",$Links[$i]['team'])."_".$Links[$i]['saison'].".xml";
        
    copy($Links[$i]['tabelle'],"../xml/".$xmlfilename);
        echo 
    $xmlfilename." kopiert.<br>";
        
    flush();
    }

    [...]

    // CLOSE CURL
    curl_close ($ch); 
    Kürze Erläuterung:
    Script loggt sich auf der Seite ein.
    Anschließend folgt der alte Teil des Scripts, der URLs aus einer Datenbank ausliest, und dann per copy() versucht die XML-Daten vom Server zu holen (was fehlschlägt).
    (Die Logindaten und die Website wo ich mich einlogge habe ich natürlich hier zensiert)

    Wo liegt mein Denkfehler, bzw. Problem?



    Danke,
    Lizzard
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  2. #2
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: [PHP] Login auf Website mit cURL und Download

    ich verstehe nicht ganz, was du da machst.
    Was hat in deinem Code der Curl-Request mit dem Speichern der xmls zu tun?
    Nach curl_exec verwendest du das Ergebnis nirgends.

  3. #3
    Prinz(essin)
    Themenstarter
    Avatar von Lizzard
    Registriert seit
    19.02.2006
    Ort
    München
    Beiträge
    788
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: [PHP] Login auf Website mit cURL und Download

    Das Ergebnis von curl_exec liefert ja auch nur das Login-Formular zurück, es geht ja nur darum, dass mein Script "eingeloggt" ist, um die nachfolgenden Aktionen ausführen zu können.

    Und so lange ich mit cURL "eingeloggt" bin (bis ich $ch schließe) müsste ich doch entsprechende Aktionen auf die geschützten URLs durchführen können, oder?
    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  4. #4
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: [PHP] Login auf Website mit cURL und Download

    Wenn du eingeloggt bist, brauchst du eigentlich nur noch die URL der XML Dateien anzusurfen und dann bekommst du über
    Code:
    $store = curl_exec ($ch);
    


    den Inhalt der XML Datei
    Gruß crAzywuLf

  5. #5
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: [PHP] Login auf Website mit cURL und Download

    jep, wär mir neu, dass curl quasi ne gefakte php-shell ist
    machs wie crazywulf sagt:
    curl mit den logindaten abfeuern, cookie speichern, cookie setzen, und dann wieder per curl die xml holen.

  6. #6
    Prinz(essin)
    Themenstarter
    Avatar von Lizzard
    Registriert seit
    19.02.2006
    Ort
    München
    Beiträge
    788
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: [PHP] Login auf Website mit cURL und Download

    Kann es sein, dass ich den Cookie nicht richtig speichere/setze/benutze? Weil ich in meine XML-Dateien statt den XML-Daten jetzt immer nur eine Error-Seite reinbekomme mit "Ich bin nicht eingeloggt".

    Code sieht jetzt so aus:

    PHP-Code:
    [...]
    for(
    $i=0;$i<count($Links);$i++)
    {
        
    $xmlfilename "Spielplan_".str_replace("ä","a",$Links[$i]['team'])."_".$Links[$i]['saison'].".xml";

        
    $url $Links[$i]['spielplan'];

        
    curl_setopt($chCURLOPT_URL$url);    
        
    $pagedata curl_exec($ch);
        
    $handle fopen("../xml/".$xmlfilename"w");
        
    fwrite($handle$pagedata);
        
    fclose($handle);    

        echo 
    $xmlfilename." kopiert.<br>";

        
    $xmlfilename "Tabelle_".str_replace("ä","a",$Links[$i]['team'])."_".$Links[$i]['saison'].".xml";

        
    $url $Links[$i]['tabelle'];
        
    curl_setopt($chCURLOPT_URL$url);    
        
    $pagedata curl_exec($ch);
        
        
    $handle fopen("../xml/".$xmlfilename"w");
        
    fwrite($handle$pagedata);
        
    fclose($handle);    

        echo 
    $xmlfilename." kopiert.<br>";
        
    flush();
    }
    [...] 
    Ich glaube ich bin noch nicht so durch das ganze cURL-Konzept durchgestiegen...


    Grüße,

    Lizzard
    Geändert von Lizzard (08.12.2009 um 01:09 Uhr)
    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  7. #7
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: [PHP] Login auf Website mit cURL und Download

    in deinem Code sehe ich jetzt keine Fehler.
    Überprüfe mal genauer deine cookie-datei auf Existenz (du musst sie per hand anlegen, sie wird nicht automatisch erstellt) und Schreibrechte.

    Edit: Da ist doch ein kleines Fehlerchen
    setze mal für die curls, welche dann die xml-daten holen, noch
    PHP-Code:
    curl_setopt($chCURLOPT_COOKIEFILE"so_wie_COOKIEJAR"); 
    Mit Cookiejar kannst du nur in den Cookie schreiben, du willst aber, dass der Cookie für die Session auf der externen Seite genutzt wird.
    Das sollte es eigentlich sein, zusammen mit oben geschriebenem.
    Geändert von jojo87 (08.12.2009 um 19:14 Uhr)

Ähnliche Themen

  1. PHP CURL Cookie Login geht nicht
    Von 1234d1 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 10.09.2009, 21:52
  2. Download Icons | Free Download!!!
    Von Macrosdesign im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 2
    Letzter Beitrag: 24.05.2009, 22:01
  3. download-area mit login
    Von synaptic im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 28.04.2009, 19:15
  4. Suche Kunden-Login / Bereich mit Download Funktion
    Von Unregistriert im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 25.09.2008, 18:16
  5. Login Download… Hilfe…
    Von asccas im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 06.08.2006, 12:19

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •