tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
1167
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hothe Hothe ist offline Grünschnabel
    Registriert seit
    Sep 2007
    Beiträge
    2
    Ich brauche Hilfe bei dem Session/Cookie Handling von Curl (bzw. libcurl), hat irgendjemand eine Idee wie man mit Curl sich in Foren einloggt und Cookies benutzt, Sessions benutzt etc. ... ?

    Ich hab auch schon den ein oder anderen Code geschrieben, ich bin aber bisher nicht über den Login herausgekommen.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
        CURL* curl = curl_easy_init();    
     if(curl)         {         
    //url einlesen      
     curl_easy_setopt(curl,CURLOPT_URL,"http://www.**.**/**?do=login");   
    // callback einrichten (ist im Moment aber weniger wichtig)
    curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,handle_data);         
    // Post Daten einlesen
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "*die Daten die ich übertrage*");         
    //cookies aktivieren
    curl_easy_setopt(curl,CURLOPT_COOKIEJAR, "blub");             
    // ausführen  
    CURLcode res = curl_easy_perform(curl);        
            curl_easy_setopt(curl,CURLOPT_URL,"seite die geschützt ist" );      
            curl_easy_setopt(curl,CURLOPT_AUTOREFERER,1);
            curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,handle_data);
            curl_easy_setopt(curl,CURLOPT_COOKIEJAR, "test");
            res = curl_easy_perform(curl);
     curl_easy_cleanup(curl);
    }

    Nun kommt aber immer wenn ich eine Seite aufrufen will, bei der man eingeloggt sein muss:

    Ihr Seitenaufruf konnte nicht verarbeitet werden, da Sie sich angemeldet haben, nachdem die vorherige Seite geladen wurde.

    Irgendjemand Lösungsvorschläge?
     

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Hallo,

    so direkt weiß ich leider auch nicht wie CURL das mit den Cookies intern regelt bzw ob diese intern gepuffert werden um sie bei einem erneuten HTTP request automatisch mitzuschicken. Wenn du allerdings das Cookie von der Seite in dein CURL_COOKIEJAR flushst und das Cookie danach wieder explizit via CURLOPT_COOKIEFILE lädst, müsste es eigtl. funktionieren. Hast du denn mal ein wenig Analyse betrieben (bspw. mit wireshark) was passiert wenn du die Anmeldeprozedur manuell und mit curl durchführst?

    Zur Thematik mit dem FLUSH:

    Code c:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    #define URL "http://www.tutorials.de/forum/"
    #define LOGIN_SUBURL "login.php?do=login"
    #define COOKIE_FILE "tutorials.de.jar"
    #define POST_DATA "vb_login_username=XXX&cookieuser=1" \
      "&vb_login_password=" \
      "&s=&securitytoken=3051246bed61558da4d9c932bff4262b5cde0f62" \
      "&do=login&vb_login_md5password=XXX" \
      "&vb_login_md5password_utf=XXX"
     
      /* erst der Login Versuch: */
      curl_easy_setopt(curlh, CURLOPT_URL, URL LOGIN_SUBURL);
      curl_easy_setopt(curlh, CURLOPT_POSTFIELDS, POST_DATA);
      curl_easy_setopt(curlh, CURLOPT_WRITEFUNCTION, NULL);
      curl_easy_setopt(curlh, CURLOPT_COOKIEJAR, COOKIE_FILE);
      curl_easy_setopt(curlh, CURLOPT_COOKIELIST, "FLUSH");
      curl_easy_perform(curlh);
     
      /* dann nochmaliges verbinden */
      curl_easy_setopt(curlh, CURLOPT_URL, URL);
      /* hier das Cookie-File laden */
      curl_easy_setopt(curlh, CURLOPT_COOKIEFILE, COOKIE_FILE);
      curl_easy_setopt(curlh, CURLOPT_WRITEFUNCTION, data_handler);
      curl_easy_perform(curlh);

    HTH,
    RedWing
    Geändert von RedWing (21.12.08 um 13:13 Uhr)
     
    "I'm not deaf, I'm ignoring you"
    ----

  3. #3
    Hothe Hothe ist offline Grünschnabel
    Registriert seit
    Sep 2007
    Beiträge
    2
    Ich hab herausgefunden woran es liegt, man muss immer ein Curl* für eine Session benutzen.
     

Ähnliche Themen

  1. cURL-Problem
    Von xanthos im Forum Linux & Unix
    Antworten: 7
    Letzter Beitrag: 03.07.09, 09:58
  2. PHP curl aktivieren
    Von visiondpc im Forum Linux & Unix
    Antworten: 2
    Letzter Beitrag: 26.09.08, 13:25
  3. cURL
    Von xanthos im Forum PHP
    Antworten: 3
    Letzter Beitrag: 04.09.08, 17:02
  4. Curl
    Von Furumaru im Forum 3D-Stills
    Antworten: 14
    Letzter Beitrag: 06.06.07, 17:44
  5. Antworten: 3
    Letzter Beitrag: 27.04.07, 14:01

Stichworte