Curl Login Form Http/Https Post

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Curl Login Form Http/Https Post

    Hallo Profis!
    Ich drehe bald durch. Curl Login funzt nicht. Ich habe tausend Beispiele angesehen und ausprobiert. Es wird einfach nicht eingeloggt. Ich bekomme die Seite mit Formular und nichts weiter. Kein Fehler oder so. Was mache ich falsch?
    PHP Code:
    $url 'http://www.domain.de';
                
    $ch curl_init();

                
    //Variablen setzen
                
    $arrSubmit="usrname=admin&pass=123456";

    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt ($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$arrSubmit);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_HEADER0);

                
    //Ausführen der Aktionen
    $result curl_exec($ch);
    $code curl_getinfo ($chCURLINFO_HTTP_CODE);

    switch(
    $code)
    {
    case 
    200:
    $message 'Access Granted';
    $success 1;
    break;
    case 
    401:
    $message 'Access Denied';
    break;
    default:
    $message 'Result unknown, access denied.';
    break;
    }
    //Session beenden
    curl_close($ch);
    echo 
    $message.'<br>'.$code.'<br>'.$result
    Last edited by vitalinka; 14-06-2010, 12:06.

  • #2
    Hallo,

    mir fällt auf Anhieb nur eins auf: Du akzeptierst keine Cookies. (CURLOPT_COOKIEFILE und CURLOPT_COOKIEJAR setzen.)

    Wenn der Login im Browser mit temporär abgestellten Cookies dennoch funktioniert, liegt es doch nicht daran und du solltest dich dann nochmal melden.

    Achso: Code gehört in entsprechende Tags, bitte Beitrag ändern und das beheben (siehe Forenregeln)!

    Gruß,

    Amica
    Last edited by AmicaNoctis; 12-06-2010, 19:56.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Comment


    • #3
      Danke für die Antwort. Ich habe es schon früher mit cookie ausprobiert, kein unterschied. Auch an verschiedenen Seiten, gleiche Ergebnis.
      PHP Code:
       $url="http://domain.de/index.php";
                  
      $ch curl_init();

                  
      //Variablen setzen
                  
      $arrSubmit="bla=bla&blad=blad";

                  
      $cookies="cooc.txt";
                  
      //Session Optionen setzen

      curl_setopt($chCURLOPT_URL,$url);
      curl_setopt ($chCURLOPT_POSTtrue);
      curl_setopt($chCURLOPT_POSTFIELDS$arrSubmit);
      curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
      curl_setopt($chCURLOPT_HEADERtrue);
      curl_setopt($chCURLOPT_COOKIEJAR$cookies);
      curl_setopt($chCURLOPT_COOKIEFILE$cookies);

      //Ausführen der Aktionen
      $result curl_exec($ch);
      $code curl_getinfo ($chCURLINFO_HTTP_CODE);

      switch(
      $code)
      {
      case 
      200:
      $message 'Access Granted';
      $success 1;
      break;
      case 
      401:
      $message 'Access Denied';
      break;
      default:
      $message 'Result unknown, access denied.';
      break;
      }
      //Session beenden


                  #curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

      echo $message.$code.$result

      Comment


      • #4
        Bitte bearbeite den ersten Beitrag und formatiere den Code (Ändern => Erweitert)!

        Warum siehst du dir nicht erstmal an, was vom Server überhaupt zurückkommt (CURLOPT_HEADER, CURLOPT_RETURNTRANSFER)?

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Comment


        • #5
          Originally posted by vitalinka View Post
          Es wird einfach nicht eingeloggt. [...] Was mache ich falsch?
          Wenn ich sehe, dass du in deinem Code auf den HTTP-Statuscode 401 abfragst - dann vermute ich, dass du gar keinen „Login“-Mechanismus meinst, sondern HTTP Authentication.

          Ich sehe aber nirgends, dass du CURLOPT_USERPWD und CURLOPT_HTTPAUTH benutzt hättest.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Comment


          • #6
            Server Antwort:
            Access Granted200HTTP/1.1 200 OK Date: Mon, 14 Jun 2010 11:13:21 GMT Server: Apache/2.2.3 (CentOS) Set-Cookie: UICSESSION=12j1vfg7cersf3rit167lfmgq5; path=/ Expires: Sat, Jan 01 2000 01:01:01 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: ui_language=germany Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=UTF-8
            Da hast du recht Wahsaga. Es ist ganz normales Login Html POST Formular.
            Kann es sein, dass Server,PHP Einstellungen eine Rolle spielen?
            MfG

            Comment


            • #7
              Gegenfrage: Woran erkennst du, ob der Login erfolgreich war, ohne dir die Response Entity mit CURLOPT_RETURNTRANSFER angesehen zu haben?
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Comment

              Working...
              X