Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] "Auto Login"

Einklappen

Neue Werbung 2019

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

  • [Erledigt] "Auto Login"

    Hi,

    ich würde gern von mein Händler dessen Preisliste automatisch runterladen und diese dann später parsen.

    Das parsen hab ich schon fertig. Die Preisliste habe ich mein Script händisch zur Verfügung gestellt.

    Nun fehlt mir nur noch das automatisierte Einloggen + dessen Download der Preisliste.
    Hab schon gegoogelt... aber so wirklich ist nichts dabei was ich suche. Alles nur Autologins für eine reale Person beim HP Besuch.

    Kann einer einen Tipp geben ?

    P.s. Ich muß mich per HTTPS einloggen. Hoffe, das dies dann auch noch möglich ist.


  • #2
    Ich weiß nicht ob es dir weiterhilft.
    Wenn du ein PHP Script schreibst und über GET-Parameter die Logininformationen mitteilst und dieses Script sich für die anmeldet?
    Look at This!
    Digital-Duty.DE
    Für Syntax-Fehler übernehme ich keine Haftung!

    Kommentar


    • #3
      Wie gesagt hab ich ja auch schon Tante Google ein bissel bemüht... da wurde die GET Variante auch des öfteren erwähnt.
      Wurde aber immer wieder verworfen, weil PHP mit dem erhaltenen Cookie nicht wirklich was anfangen konnte.
      Und ein Cookie bekomme ich.

      Allerdings war der jüngste Posting aus dem Jahre 2007.
      Denke doch, das sich mit PHP5 viel getan hat.

      Bin grad dabei die c't 2010/Heft 4 = "Telefonrechnung und Verbindungsdaten per wget" zu schmökern.
      Da wurde per Bash eine Anmeldung zu Arcor (https) hergestellt.
      Würde mir auch reichen. Mal schauen, ob ich da irgendwas verwenden kann.

      Die Frage: PHP + Login bleibt damit aber dennoch offen.

      Kommentar


      • #4
        curl - Damit kannst Du auch Cookies benutzen.

        Kommentar


        • #5
          Also mit einen Bekannten kämpfe ich nun darum, eine Verbindung herzustellen.
          Hier erstmal das was jetzt schon mit diversen Funktionen versucht worden ist.

          Leider liefert curl/fopen/wget alle ähnliche Ergebnisse:
          Code:
          {"success":"false","status":{"code":"E0","type":"error","text":"Task undefined."}}
          bzw:
          {"success":"false","status":{"code":"E9815","type":"error","text":"Invalid session, please log in."}}
          PHP-Code:
          class AutoDNS{
              var 
          $user '***';
              var 
          $password '***';

              function 
          __contruct(){}

              function 
          login(){
                  
          $postfields 'user='.$this->user;
                  
          $postfields .= '&password='.$this->password;
                 
                  
          $fp fopen("example_homepage.txt""w");
                 
                  
          $ch curl_init();
                  
          curl_setopt($chCURLOPT_URL'https://login.autodns.com/');
                  
          curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
                  
          curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
                  
          curl_setopt($chCURLOPT_SSL_VERIFYHOSTFALSE);
                  
          curl_setopt($chCURLOPT_POSTtrue);
                  
          curl_setopt($chCURLOPT_POSTFIELDS$postfields);
                  
          curl_setopt($chCURLOPT_FRESH_CONNECT1);
                  
          curl_setopt($ch
          CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt');
                  
          curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U;
          Windows NT 5.1; de; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR
          3.5.30729) FBSMTWB'
          );
                  @
          curl_exec($ch);
                  
          curl_setopt($chCURLOPT_FILE$fp);
                  
          curl_setopt($chCURLOPT_URL,
          'https://login.autodns.com/core/proxy.php?export_csv=1&task=domain_inquire_list');
                  
          $buffer = @curl_exec($ch);
                  
          curl_close($ch);
                  
          fclose($fp);
                  
          exec("wget --load-cookies=cookie.txt
          --output-document=output.txt --no-check-certificate
          'https://login.autodns.com/core/proxy.php?export_csv=1&task=domain_inquire_list&children=1'"
          );
                  return 
          $buffer;
              }
          }
          $autodns = new AutoDNS();
          echo 
          $autodns->login(); 
          P.s. Die URL die drin erwähnt wird, ist die korrekte.
          Wer ernsthaftes Interesse an Hilfestellung geben kann/will (und schon einige Posting hat) der kann gern Passwort + Username bekommen.

          Kommentar


          • #6
            Denke doch, das sich mit PHP5 viel getan hat.
            Unsinn. Entscheidend sind eher die Mechanismen, die http(s) dazu benutzt.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Zitat von nikosch Beitrag anzeigen
              Unsinn. Entscheidend sind eher die Mechanismen, die http(s) dazu benutzt.
              hmm... soll das heißen, das es mittels PHP auch direkt geht ?
              Also ohne curl oder fopen ?

              Oder siehst du im Eingans erwähnten Code einen Fehler, der den Fehler "Invalid Session" rechtfertig ?

              Kommentar


              • #8
                Nein, ich meine, dass der Versionssprung auf PHP5 für die Überlegungen eher zweitrangig sein dürfte.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  ahja...

                  da ich dich aber grad an der "angel" hab = hast du eine Idee woran es leigen könnte ?

                  Kommentar


                  • #10
                    So spontan.. Hm.... Ändert sich was, wenn Du @curl_exec($ch); mal vom @ befreist?
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Nein. Leider nicht.
                      Gleiche Fehlermeldung.

                      Ich hab es nun auch mal gesäubert + umgebaut (tut ja nicht not, das jeder das rumgeteste mit lesen muß.)
                      Die Fehlermeldung ist aber genau das gleiche in Grün.

                      Vllt. hat ja jetzt einer Idee (?)

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

                      // SET URL FOR THE POST FORM LOGIN
                      curl_setopt($chCURLOPT_URL"https//login.autodns.com/");
                      curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
                      curl_setopt($chCURLOPT_SSL_VERIFYHOSTFALSE);

                      // ENABLE HTTP POST
                      curl_setopt ($chCURLOPT_POST1);

                      // SET POST PARAMETERS : FORM VALUES FOR EACH FIELD
                      curl_setopt ($chCURLOPT_POSTFIELDS"user=****&password=****?");
                      curl_setopt ($chCURLOPT_RETURNTRANSFER1);

                      // EXECUTE 1st REQUEST (LOGIN)
                      $postresponse curl_exec ($ch);
                      echo 
                      $postresponse;

                      // SET FILE TO DOWNLOAD
                      curl_setopt($chCURLOPT_URL"https://login.autodns.com/core/proxy.php?export_csv=1&task=domain_inquire_list&children=");

                      // EXECUTE 2nd REQUEST (xml response)
                      $getresponse curl_exec ($ch);
                      echo 
                      $getresponse;

                      // CLOSE THE SESSION
                      curl_close($ch);

                      ?>

                      Kommentar


                      • #12
                        na so n "rotz"

                        wenn man die Bugliste von curl mal durchstöbert, dann kann man dort erlesen, das nach dem schließen von curl folgendes eingefügt werden muß:

                        (hier mit dem schließenden Befehl):
                        PHP-Code:
                        curl_close($ch);
                        unset(
                        $ch); 
                        Und siehe da = cookie.txt wird angelegt und example_homepage.txt wird mit dem korrekten Inhalt gefüllt.

                        Kommentar


                        • #13
                          LOL, da soll nun jemand drauf kommen. *Bookmark*
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar


                          • #14
                            joar... auch eher durch Zufall drauf gestoßen.


                            Also rein komme ich jetzt schonmal.
                            Leider wird meine Datei nicht wirklich valide gefüllt.
                            Es sollte eigentlich eine *.csv sein. (hab es im Script von txt nun auch in csv geändert.)

                            Excel kann damit aber nichts anfangen. Es sind aber definitiv die korrekten Daten.

                            Code:
                            {"metaData":{"totalProperty":"data.summary","root":"data.domain","id":"name","fields":[{"name":"name"},{"name":"parking_provider"},{"name":"parking_provider_name"},{"name":"authinfo"},{"name":"owner","mapping":"owner.user"},{"name":"ownerc"},{"name":"adminc"},{"name":"techc"},{"name":"zonec"},{"name":"payable","type":"date","dateFormat":"Y-m-d H:i:s"},{"name":"nserver"},{"name":"registry_status"},{"name":"included"},{"name":"created","type":"date","dateFormat":"Y-m-d H:i:s"},{"name":"expire","type":"date","dateFormat":"Y-m-d H:i:s"}]},"data":{"domain":[{"owner":{"context":4,"user":"demo123"},"adminc":100**09,"zonec":987**60,"nserver":[{"name":"ns9.ns14.de"},{"name":"ns10.ns14.de"}],"name":"domain.com","techc":9**060,"created":"2008-06-09 16:09:34","ownerc":100**09,"registry_status":"LOCK","authinfo":"vXtkrIPNZThS","expire":"2010-06-09 14:09:34","payable":"2010-06-09 16:09:34","parking_provider":"","parking_provider_name":false}],"summary":1},"status":{"text":"Domain-Daten erfolgreich ermittelt.","type":"success","code":"S0105"}}
                            Wenn ich es manuell runterlade, dann kann es excel sauber darstellen.
                            Auf die schnelle eine Idee ?

                            Kommentar


                            • #15
                              Gepostet hast Du gerade JSON..
                              --

                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                              --

                              Kommentar

                              Lädt...
                              X