Login per curl auf Webseite funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Login per curl auf Webseite funktioniert nicht

    Hallo,

    ich möchte mich auf folgender Webseite einloggen:
    http://shop.hoffmann.de/index.php/sp...ielwaren/login

    Diese URL ist auch gleichzeitig das Ziel des Formulars.

    Als Ausgabe im Browser erhalte ich die Loginseite und folgende Meldung:
    "Um den geschlossenen Bereich für Fachhändler zu betreten, benötigen Sie eine Kundennummer und ein Passwort. Wenn Sie noch kein Passwort besitzen, können Sie dies über den Anmeldeantrag anfordern."

    Bei "CURLOPT_POSTFIELDS" habe ich alle Formulardaten eingetragen, die in den POST-Request an die Webseite geschickt werden sollen. Wer in den Quelltext o. g. Webseite schaut wird feststellen, dass das Formular leider keinen Submit-Button hat, sondern eine Grafik, die das Formular per Javascript abschickt.

    Hier mein Code:

    PHP-Code:
    <?php
    $ch 
    curl_init();

    // setze die URL und andere Optionen
    $sendData = array('Login' => '19999107',
                         
    'Password' => 'mopet',
                         
    'Submit' => true,
                         
    'RedirectURI' => '/content/view/full/1571'); 

    curl_setopt($chCURLOPT_URL"http://shop.hoffmann.de/index.php/spielwaren/spielwaren/login");
    curl_setopt($chCURLOPT_POSTtrue);
    curl_setopt($chCURLOPT_POSTFIELDS"Login=User&Password=PW&RedirectURI=%2Fcontent%2Fview%2Ffull%2F1571"); //$sendData);
    curl_setopt($chCURLOPT_COOKIESESSIONtrue);
    curl_setopt($chCURLOPT_COOKIEFILE"cookiefile");
    curl_setopt($chCURLOPT_COOKIEJAR"cookiefile");
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt($chCURLOPT_FAILONERRORtrue);
    curl_setopt($chCURLOPT_RETURNTRANSFERfalse);
    curl_setopt($chCURLOPT_UNRESTRICTED_AUTHtrue);

    // führe die Aktion aus und gebe die Daten an den Browser weiter
    curl_exec($ch); 

    // schließe den cURL-Handle und gebe die Systemresourcen frei
    curl_close($ch);
    ?>
    Der Login will einfach nicht funktionieren. Könnte ihr mir helfen?

  • #2
    "Funktioniert nicht" ist keine Fehlerbeschreibung!

    Kommentar


    • #3
      Der Login findet nicht statt, das habe ich aber oben geschrieben. Ist diese Fehlerbeschreibung besser?

      Kommentar


      • #4
        Gibt es denn keine Fehlermeldung ?
        Was sagt curl_error()?

        Kommentar


        • #5
          Original geschrieben von pekka
          Gibt es denn keine Fehlermeldung ?
          Was sagt curl_error()?
          Nein, es gibt leider keine Fehlermeldung.

          curl_error(); gibt leider auch keine Fehlermeldung aus.

          Kommentar


          • #6
            warum wird denn $sendData mit Daten gefüllt aber bei CURLOPT_POSTFIELDS wieder ganz andere Daten benutzt?!

            Kommentar


            • #7
              Weil ich testen wollte ob es am Array liegt, aber daran liegt es auch nicht. Macht also keinne Unterschied ob ich den String direkt reinschreibe oder das Array $sendData angebe

              Kommentar


              • #8
                Der einfachste Weg so wie ich das meist bei einem Curl Login / Datenübergabe mache ist, das erst über den Firefox zu machen und HTTPLIVEHEADERS mitlaufen zu lassen. Man sieht nach dem Submit dann in den Liveheaders was als POST übergeben wurde.

                Dieses dann einfach Kopieren und in Curl mit reinnehmen, so vermeidet man dass man eventuell essentielle Daten vergisst / falsch schreibt. Dann einfach Username + Passwort entsprechend natürlich anpassen.

                Meist wenn es nicht klappt ist irgendeine POST Information Murks oder es fehlt etwas ; so war es bisher bei mir jedenfalls.

                Kommentar


                • #9
                  Original geschrieben von WiZARD
                  Der einfachste Weg so wie ich das meist bei einem Curl Login / Datenübergabe mache ist, das erst über den Firefox zu machen und HTTPLIVEHEADERS mitlaufen zu lassen. Man sieht nach dem Submit dann in den Liveheaders was als POST übergeben wurde.

                  Dieses dann einfach Kopieren und in Curl mit reinnehmen, so vermeidet man dass man eventuell essentielle Daten vergisst / falsch schreibt. Dann einfach Username + Passwort entsprechend natürlich anpassen.

                  Meist wenn es nicht klappt ist irgendeine POST Information Murks oder es fehlt etwas ; so war es bisher bei mir jedenfalls.
                  Gut, dass du das ansprichst. Die Postvariablen habe ich mit HTTP Live Headers ausgelesen, genau so du. Habe ganz vergessen diese wichtige Info zu erwähnen.

                  Trotz allem funktioniert das Script/Der Login nicht.

                  Da muss doch irgendwo ein Denkfehler sein oder?

                  Kommentar


                  • #10
                    hast du vielleicht den Quellcode der JS Funktion? hab grad keinen Nerv danach zu suchen :P

                    Kommentar


                    • #11
                      Original geschrieben von krel
                      hast du vielleicht den Quellcode der JS Funktion? hab grad keinen Nerv danach zu suchen :P
                      Code:
                      <script language="JavaScript">
                          function chk_form()
                            {
                            if(document.form.Login.value=="")
                            {
                            alert("Bitte das Feld Kundennummer ausfüllen!");
                            document.form.Login.focus();
                            }
                            else if(document.form.Login.value.length<1 || document.form.Login.value.length>80)
                            {
                            alert("Die Kundennummer muß zwischen 1 und 80 Zeichen lang sein!");
                            document.form.Login.focus();
                            }
                            else if(document.form.Password.value=="")
                            {
                            alert("Bitte das Feld Passwort ausfüllen!");
                            document.form.Password.focus();
                            }
                            else document.form.submit();
                          }
                      
                      </script>
                      Ich hoffe du/ihr könnt mir weiter helfen.

                      Kommentar


                      • #12
                        Curl Login

                        Wahrscheinlich bin ich der 100 Benutzer der eine Frage zu Curl hat aber was solls, google und auch das Forum konnte mir bisher nicht so richtig weiterhelfen.

                        Ich möchte mich auf einer fremden Internetseite einloggen und anschließend ein File-Upload durchführen. Da dieses automatisch ablaufen soll dachte ich einfach mal an php ;-) ...

                        Ich hab mit Curl noch nicht so viel gemacht daher auch einen Teil des Codes einfach zusammengeschrieben. Wenn ich mich mit diesem Code zB in unserem Onlineshop anmelde, klappt alles nicht aber da wo ich den Login benötige.

                        Ich bekomme keine Fehlermeldung habe den Header mit "HttpLiveHeraders" angesehen und habe ebenfalls curl_error() benutzt.

                        Hier mal der Code:

                        PHP-Code:
                        <?php
                         
                         $sendData 
                        = array('username' => 'xxx',
                                           
                        'passwd' => 'xxx',
                                           
                        'remerber' => 'yes',
                                           
                        'Submit' => true,
                                           
                        'RedirectURI' => '/index.php?option=com_user');

                        curl_setopt($chCURLOPT_URL"http://www.sellerama.de/index.php?option=com_user&view=login");
                        curl_setopt($chCURLOPT_POSTtrue);
                        curl_setopt($chCURLOPT_POSTFIELDS$sendData);
                        curl_setopt($chCURLOPT_COOKIESESSIONtrue);
                        curl_setopt($chCURLOPT_COOKIEFILE"cookiefile");
                        curl_setopt($chCURLOPT_COOKIEJAR"cookiefile");
                        curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
                        curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
                        curl_setopt($chCURLOPT_FAILONERRORtrue);
                        curl_setopt($chCURLOPT_RETURNTRANSFERfalse);
                        curl_setopt($chCURLOPT_UNRESTRICTED_AUTHtrue); 

                        curl_exec($ch); 
                        curl_close($ch); 
                        ?>
                        jeder kleinste Tip würde mich glaube ich weiterbringen...

                        Danke im vorraus!

                        Gruß
                        Jan

                        Kommentar

                        Lädt...
                        X