Externes Formular ausfüllen

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

  • Externes Formular ausfüllen

    Guten Morgen

    Ich versuche heute ein externes Formular auszufüllen. Mit einem Testformular hat dies ohne probleme funktioniert. Nun habe ich aber ein Formular welches ich so bisher nicht hinbekommen habe.

    So sieht grob das Formular aus:
    Code:
    <form action="connect/saveform" method="post">
    <div class="panel-body">
        <input autofocus="true" data-val="true" data-val-required="mandatory" id="username" name="username" required="true" type="text" value="" />
      <input data-val="true" data-val-required="mandatory" id="password" name="password" required="true" type="password" />
      <input data-val="true" data-val-required="mandatory" id="securityTok" name="securityTok" type="hidden" value="12345" />
      <input data-val="true" data-val-required="" id="userid" name="userid" type="hidden" value="165" />
      <input id="realname" name="realname" type="hidden" value="" />
    </div>
    <div>
       <button class="btn btn-lg btn-primary" type="submit">Login</button>    
    </div>
    </form>
    PHP
    PHP-Code:
    function curlStart($domain$var false){
        
    $fp curl_init($domain);
        
    curl_setopt($fp,CURLOPT_TIMEOUT,10);
        
    curl_setopt($fp,CURLOPT_FAILONERROR,1);
        
    curl_setopt($fp,CURLOPT_RETURNTRANSFER,1);
        if(
    $var != false) {
            
    curl_setopt($fp,CURLOPT_POST,1);
            
    curl_setopt ($fpCURLOPT_POSTFIELDS$var); 
        }
        
    $output curl_exec($fp);
        
    curl_close($fp);
        return 
    $output;
    }

    $var "username=test&password=test&securityTok=12345&userid=165&realname=egal";
    for(
    $x=0;$x<50;$x++) {
        
    $send curlStart($formURL,$var);

    Hat jemand eine Idee wie ich das zum laufen bekomme? Ich bekomme egal welche Variante ich versuche "Object moved"

    Wenn ich aber den Inhalt der Seite abrufe kommt sauber das Formular. Also an der Adresse liegt es somit auch nicht. Das Formular ist leider nur Intern erreichbar so das ich keine URL Angeben kann.

    Gruss und Danke

    Koda

  • #2
    Da scheint eine Weiterleitung am Werke zu sein.

    Setz mal noch CURLOPT_FOLLOWLOCATION.

    - PHP: curl_setopt - Manual

    Siehe ansonsten vielleicht hier für ein paar Tipps, um den String mit den POST-Daten etwas eleganter zu erstellen:

    - php - curl POST format for CURLOPT_POSTFIELDS - Stack Overflow

    Kommentar


    • #3
      Guten Abend

      Vielen dank. So erhalte ich einfach nur noch eine weisse Seite wenn ich die Option CURLOPT_FOLLOWLOCATION auf 1 oder höher setze. In der error_log steht leider auch gar nichts.

      EDIT: Habe nun bemerkt das es ein Error gibt: "SSL certificate problem: unable to get local issuer certificate". Diesen habe ich mal unterdrückt mit "curl_setopt($fp,CURLOPT_SSL_VERIFYPEER,false);" da es sich um einen xampp geht. Mit dem Produktiven Server dürfte wohl das Problem nicht auftreten so wie ich bisher gelesen habe. Er sagt mir nun immer es ist mit dem passwort was nicht ok. Bisher kam ich noch nicht drauf warum. Das passwort hat ein % und @ drin. Ich weiss nicht ob es was damit zu tun hat.

      Gruss

      Koda
      Zuletzt geändert von Koda; 10.01.2015, 19:12.

      Kommentar


      • #4
        Dass das Formular ein Feld namens securityTok enthält ist ein Anzeichen dafür, dass es gegen solche externen Requests wie du sie vorhast abgesichert ist – es wird vermutlich die Eingaben abweisen, so lange das Token nicht zu einem serverseitig generierten Wert passt.

        Du müsstest dir also erst mal das „aktuelle“ Formular vom Server holen, um daraus das Token zu extrahieren – und wenn das eine vorherige Anmeldung und ggf. das Aufrechterhalten einer Session erfordert, müsstest du das auch implementieren.

        Dass das Formular auf diese Weise abgesichert ist, legt außerdem die Vermutung nahe, dass der Betreiber dieser Seite nicht möchte, dass du derart vorgehst. (Das solltest du also auf jeden Fall zuerst abklären.)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi

          Sorry das hätte ich vielleicht erwähen müssen. Diesen Token habe ich. Es geht um eine API Schnittstelle. Ich muss mich aber neu Authentifizieren nach einer gewissen Zeit und möchte versuchen dies zu automatisieren ohne jedesmal das selbe Passwort wieder eingeben zu müssen. Es ist ja seltsam das der Aufruf selber funktioniert. Er gibt mir dann einfach aus das der Login erfolgreich war aber auch das etwas mit dem Passwort nicht stimmt. Er gibt mir einfach alle fehler aus. Ich nehme an das liegt weil das ein jQuery formular ist oder sowas. Kann das sein und gibt es dafür eine Lösung?

          Unter dem Formular ist folgender HTML Code welcher genau angezeigt wird nach dem Formular absenden.
          Code:
          <div id="successView" class="panel-body hidden">
              <p class="lead text-center">Login Erfolgreich</p>
          </div>
          
          <div id="errorView" class="hidden">
              <div class="panel-body">
                  <h2 class="text-center">Password fehler</h2>
                  <p class="lead text-center">Falsches Passwort.</p>
              </div>
          </div>
          Gruss

          Koda
          Zuletzt geändert von Koda; 10.01.2015, 21:01.

          Kommentar


          • #6
            Guten Morgen

            Leider konnte ich den Beitrag nicht mehr bearbeiten. Habe es hinbekommen. Da es sich um ein jquery Formular handelt kam ich schnell darauf das das Formular mit einem json string verarbeitet wird. Also habe ich meine Daten für json aufbereitet. Und schon klappts Vielen Dank.

            Gruss

            Koda

            Kommentar

            Lädt...
            X