Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular Auswertung

Einklappen

Neue Werbung 2019

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

  • Formular Auswertung

    Hallo,
    ich bin verzweifelt am versuchen den Fehler zu finden

    User müssen bei mir für eine bestellung ein formular ausfüllen

    ich prüfe auf der Folgeseite

    PHP-Code:
    if(strlen($_POST[text])<1){$fehler '1';}
    if(
    strlen($_POST[strasse])<4){$fehler '1';}
    if(
    strlen($_POST[ort])<2){$fehler '1';}
    if(
    strlen($_POST[name])<3){$fehler '1';}
    if(
    strlen($_POST[pseudo])<3){$fehler '1';}  

     if(!empty(
    $fehler)){
             echo 
    'Fehler Bitte gehen sie einen Schritt zur&uuml;ck und starten neu <a href="./">zur&uuml;ck</a>';
             
    $button "Es ist ein Fehler unterlaufen";
    exit;  
      }
      else
      {
                 
    $button '<input class="btn btn-primary btn-large"  type="submit" value="ZAHLUNGSPFLICHTIG KAUFEN">';
      } 

    Funktioniert eigentlich auch ohne probleme, es gibt aber immer wieder IOS Safari User die es schaffen das formular abzuschicken obwoh das script gar keinen Button anzeigt

    kann mir jemand ein Tipp geben woran es liegen könnte?


  • #2
    Ich sehe hier nichts von einem Formular. Das einzige was ich sehe ist ein Button, welcher ohne Form Tags steht.

    Warum machst du sowas?

    PHP-Code:
    if(strlen($_POST[text])<1){$fehler '1';} 
    Edit: Ich verstehe auch nicht warum du dann bei $fehler eine 1 reinschreibst und dann prüfst ob $fehler nachher leer ist.
    Ich gehe einfach mal davon aus, das das ganze strlen gedöns zum Testen der Felder ist. Wenn strlen nicht zutrifft, wird die Variable $fehler gesetzt. Wenn nun aber das Formular richtig ausgefüllt ist, exestiert $fehler gar nicht -> logisch das es dann leer ist, weil $fehler gar nicht exestiert...

    Kommentar


    • #3
      Also normalerweise stehen die indizes eines Arrays (zumindest sofern sie Assoziativ sind) in Anführungsstrichen...
      Aber ich kann mich nur chiller anschließen, da fehlt das Formular.
      Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

      Kommentar


      • #4
        was soll das mit dem Formular zu tun haben?

        noch mal

        Seite 1 ein Arikel wählen formular abschicken.
        Seite 2 Formular auswerten strlen...

        ich will hier an der Stelle einfach nur wissen ob der inhalt in $_POST[text] größer ist als 1
        es funktioniert ja mit allen anderen browsern nur mit den Mobilkram gibt es die probleme

        und weiter schicken zu seite 3

        Kommentar


        • #5
          Zitat von johanna Beitrag anzeigen
          was soll das mit dem Formular zu tun haben?

          noch mal

          Seite 1 ein Arikel wählen formular abschicken.
          Seite 2 Formular auswerten strlen...

          ich will hier an der Stelle einfach nur wissen ob der inhalt in $_POST[text] größer ist als 1
          es funktioniert ja mit allen anderen browsern nur mit den Mobilkram gibt es die probleme

          und weiter schicken zu seite 3
          Ja natürlich funktioniert das so, aber es ist nicht richtig. Da ist nochmal ein großer Unterschied.

          und weiter schicken zu seite 3
          Dann muss da ja wohl doch noch irgendwo ein Formular sein?! Wie willst du es sonst weiterschicken?

          Kommentar


          • #6
            was ist falsch daran wenn ich sage ist der inhalt der Variable <1 gebe einen fehler aus, und sage dem Script danach
            PHP-Code:
            exit; 
            dann benötige ich das formular doch gar nicht mehr

            Kommentar


            • #7
              Das ist aber alles andere als schön gelöst.
              Außerdem kann keiner anhand des vorliegenden Codeschnipsels dir sagen, wieso es mit mobilen Geräten nicht geht. Was du postest passiert alles serverseitig und der ist immer der gleiche.
              Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

              Kommentar


              • #8
                ich habe nichts von gelöst gesagt

                das das Serverseitig ist ist mir klar, nebenbei habe ich den fehler versucht mit dem IOS nachzumachen das bei meine Geräten geht alles so wie es sein soll


                PHP-Code:
                    <p><label class="checkbox" for="gespiegelt"><input type="checkbox" value="1" id="gespiegelt" name="gespiegelt" />Druck gespiegelt produzieren </label></p>
                                                    <
                p><label for="length">L&auml;nge in cmca.</label> <input type="number" step="any" id="length" name="length" value="20" required="required" /><label for="width">H&ouml;he in cmca. (max60cm)</label> <input type="number" min="2" max="55" step="any" id="width" name="width" value="2" required="required" /><label for="quantity">Anzahl/Auflage</label> <input type="number" id="quantity" name="quantity" value="1" required="required" /></p>
                                                    <
                p><span id="price"></span><label>St&uuml;ckpreis</label> <input type="hidden" id="price1" name="price1"></p>
                                                    <
                p><span id="pschatten"></span><label>Schattenpreis</label> <input type="hidden" id="pschatten1" name="pschatten1"></p>
                                                    <
                p><span id="pkontur"></span><label>Konturpreis</label> <input type="hidden" id="pkontur1" name="pkontur1"></p>
                                                    <
                div class="clearfix"></div>
                                                    <
                p><span id="total"></span><input type="hidden" id="total1" name="total1"> <label>Gesamtpreis</label></p>
                                                    <
                p><label for="pseudo">eBay Mitgliedsname</label> <input type="text" id="pseudo" name="pseudo" value="" required="required" /><small style="display: block;">Bitte geben Sie Ihren eBay Mitgliedsname eindamit die Bestellung korrekt zugeordnet werden kann.</small></p>
                                                    <
                p><legend>Rechnungsdaten</legend> <label for="firma">Firma</label> <input type="text" id="firma" name="firma" value="" /></p>
                                                    <
                p><label for="name">Name</label> <input type="text" id="name" name="name" value="" required="required" /></p>
                                                    <
                p><label for="plz">Plz Ort</label> <input style="width:50px" type="number" id="plz" name="plz" value="" required="required" /><input style="width:100px" type="text" id="ort" name="ort" value="" required="required" /></p>
                                                    <
                p><label for="strasse">Strasse Nr.</label> <input type="text" id="strasse" name="strasse" value="" required="required" /></p>
                                                    <
                p><label for="email">E-Mail-Adresse</label> <input type="email" id="email" name="email" value="" required="required" /></p>
                                                </
                div>
                                            </
                div>
                                            <
                div class="form-actions">
                                                <
                button class="btn btn-primary btn-large pull-right" id="add-to-cart" type="submit">Bestellen</button></div>
                                        </
                form

                Kommentar


                • #9
                  Und wo ist da nun der PHP Code?

                  Der PHP Code den du als erstes gepostet hast, muss doch noch ein Formular beinhalten?! Und das brauchen wir in dem zusammenhang.

                  Kommentar


                  • #10
                    und was schicken die IOS-Nutzer ab, bzw. wo schlägt deine Validierung fehl?
                    Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                    Kommentar


                    • #11
                      der Php code den ich zu erst gepostet habe wird durch das eben gepostet formular gefüllt

                      formular füllen

                      PHP-Code:
                      <p><label class="checkbox" for="gespiegelt"><input type="checkbox" value="1" id="gespiegelt" name="gespiegelt" />Druck gespiegelt produzieren </label></p>
                                                          <
                      p><label for="length">L&auml;nge in cmca.</label> <input type="number" step="any" id="length" name="length" value="20" required="required" /><label for="width">H&ouml;he in cmca. (max60cm)</label> <input type="number" min="2" max="55" step="any" id="width" name="width" value="2" required="required" /><label for="quantity">Anzahl/Auflage</label> <input type="number" id="quantity" name="quantity" value="1" required="required" /></p>
                                                          <
                      p><span id="price"></span><label>St&uuml;ckpreis</label> <input type="hidden" id="price1" name="price1"></p>
                                                          <
                      p><span id="pschatten"></span><label>Schattenpreis</label> <input type="hidden" id="pschatten1" name="pschatten1"></p>
                                                          <
                      p><span id="pkontur"></span><label>Konturpreis</label> <input type="hidden" id="pkontur1" name="pkontur1"></p>
                                                          <
                      div class="clearfix"></div>
                                                          <
                      p><span id="total"></span><input type="hidden" id="total1" name="total1"> <label>Gesamtpreis</label></p>
                                                          <
                      p><label for="pseudo">eBay Mitgliedsname</label> <input type="text" id="pseudo" name="pseudo" value="" required="required" /><small style="display: block;">Bitte geben Sie Ihren eBay Mitgliedsname eindamit die Bestellung korrekt zugeordnet werden kann.</small></p>
                                                          <
                      p><legend>Rechnungsdaten</legend> <label for="firma">Firma</label> <input type="text" id="firma" name="firma" value="" /></p>
                                                          <
                      p><label for="name">Name</label> <input type="text" id="name" name="name" value="" required="required" /></p>
                                                          <
                      p><label for="plz">Plz Ort</label> <input style="width:50px" type="number" id="plz" name="plz" value="" required="required" /><input style="width:100px" type="text" id="ort" name="ort" value="" required="required" /></p>
                                                          <
                      p><label for="strasse">Strasse Nr.</label> <input type="text" id="strasse" name="strasse" value="" required="required" /></p>
                                                          <
                      p><label for="email">E-Mail-Adresse</label> <input type="email" id="email" name="email" value="" required="required" /></p>
                                                      </
                      div>
                                                  </
                      div>
                                                  <
                      div class="form-actions">
                                                      <
                      button class="btn btn-primary btn-large pull-right" id="add-to-cart" type="submit">Bestellen</button></div>
                                              </
                      form

                      bestellen drücken

                      PHP-Code:

                      <?php
                      session_start
                      ();


                       
                      $text $_POST['text'];
                       
                      $folie $_POST['folie'];
                       
                      $color $_POST['color'];
                       
                      $schatten $_POST['schatten'];
                       
                      $kontu $_POST['kontu'];
                       
                      $font $_POST['font'];
                       
                      $backgroundColor $_POST['backgroundColor'];
                       
                      $gespiegelt $_POST['gespiegelt'];
                       
                      $length $_POST['length'];
                       
                      $width $_POST['width'];
                       
                      $quantity $_POST['quantity'];
                       
                      $price1 $_POST['price1'];
                       
                      $pschatten1 $_POST['pschatten1'];
                       
                      $pkontur1 $_POST['pkontur1'];
                       
                      $total1 $_POST['total1'];
                       
                      $pseudo $_POST['pseudo'];
                        
                      $_SESSION['pseudo'] = $_POST['pseudo'];
                       
                      $firma $_POST['firma'];
                       
                      $_SESSION['firma'] = $_POST['firma'];
                       
                      $name $_POST['name'];
                      $plz $_POST['plz'];
                      $ort $_POST['ort'];
                      $strasse $_POST['strasse'];
                      $email $_POST['email'];


                      if(
                      strlen($_POST[text])<1){$fehler '10';}
                        if(
                      strlen($_POST[strasse])<4){$fehler '11';}
                       if(
                      strlen($_POST[ort])<2){$fehler '12';}
                       if(
                      strlen($_POST[name])<3){$fehler '13';}
                        if(
                      strlen($_POST[pseudo])<3){$fehler '14';}
                      und wenn bis hier kein fehler entsteht

                      PHP-Code:
                      <form action="gekauft.php" method="post">

                      <input type="hidden" name="text" value="'<?php echo $text;?>">
                      <input type="hidden" name="name" value="'<?php echo $name;?>">
                      <input type="hidden" name="plz" value="'<?php echo $plz;?>">
                      <p><input type="checkbox" name="agbs" id="agbs" value="1" required="required" /> Ich habe die <a href="agbs.php" target="_blank">AGBs und Widerrufsbelehrung</a> gelesen und akzeptiert.</p><br />
                                                          
                                                          
                                                          <h3><input type="checkbox" name="widerr" id="widerr" value="1" required="required" /> Aufforderung und Zustimmung zum Beginn der Ausf&uuml;hrung der Dienstleistung</h3>
                                                          
                                                          Ich bin einverstanden und verlange ausdr&uuml;cklich, dass Sie vor Ende der Widerrufsfrist mit der Ausf&uuml;hrung der beauftragten Dienstleistung beginnen. Mir ist bekannt, dass ich bei vollst&auml;ndiger Vertragserf&uuml;llung durch Sie mein Widerrufrecht verliere</p><br>
                                                              <p></p>
                                                              <div class="clearfix">
                                                                  <h1><input type="hidden" name="hidprei" id="hidprei">        <input type="hidden" name="hidporto" id="hidporto">        <?=$button;?><br>

                      $button erscheint nur wenn kein fehler da ist

                      Kommentar


                      • #12
                        - Mach mal zu Beginn deines scriptes das hier rein, führe es aus, wundere dich und beheb das alles:

                        PHP-Code:
                        error_reporting(-1);
                        ini_set('display_errors'1); 
                        - $_POST[text] ist sowas von blödsinn, dreh mal dein error_reporting auf und du wirst dich wundern. Es heißt - wie oben schon erwähnt wurde $_POST["text"], das gilt für alle anderen auch. Alternativ $_POST['text'] Und wenn du oben schon $text zuweist (ohne zu prüfen ob es überhaupt vorhanden ist) dann verwende es halt auch darunter, dann ist zumindest nur die hälfte nicht ganz richtig.

                        - fehler='1' ... 1 ist eigenltich eine Zahl, also würde 1 reichen, aber dafür gibt es eigentlich boolean .. also true oder false

                        -
                        dann benötige ich das formular doch gar nicht mehr
                        man läßt ein Skript nicht einfach so krepieren, alleine schon das da höchstwarscheinlich halbfertiges-invalides HTML an den Browser rausgeht ist schon nicht sauber.

                        => wenn man solche Dinge unsauber umsetzt darf man sich auch nicht wundern wenn "seltsame" Dinge passieren. Und da sind einige Unsauberkeiten enthalten.

                        Mach es sauber und debugge, dann kannst du dich auch auf die relevanten "Fehler" bzw. Debugging konzentrierten, so gehen die in der Masse ev. sogar unter.

                        Schau dir auch das noch einmal an: http://php-de.github.io/#form

                        LG
                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #13
                          Sicher das das so richtig ist?

                          PHP-Code:
                          <?=$button;?>
                          Also kurz gesagt, erstellst du auch ein Formular wenn das erste Formular falsch ausgefüllt wurde?! Nur der Button erscheint eben nicht.
                          Allein das ist schon sehr Unsinnig. Ich kann dir ein Textfeld ganz einfach in einen Button umwandeln. Nun drücke ich diesen neuen Button und schwups bin ich auf der neuen Seite. Gebe ich diesem neuen Button noch ein value hat er sogar mehr als wie 5 zeichen und somit umgehe ich auch dein strlen.

                          Du solltest dir nochmal zu gemüte führen wie man Formulare verarbeitet.

                          Kommentar


                          • #14
                            @hausl habe es nur mit den Vars probiert dann mit $_POST["var"] $_POST['var'] $_POST[var]

                            alles durch!

                            @chiller20000

                            Das Formular darf ja normal garnicht mehr erstellt werden nach der Ausgabe des Backlinks

                            gebe ich ein Exit; aus und dann erscheint nur noch
                            PHP-Code:
                            </body></html
                            PHP-Code:
                             if(!empty($fehler)){
                              echo 
                            'Fehler Bitte gehen sie einen Schritt zur&uuml;ck und starten neu <a href="./">zur&uuml;ck</a>';
                              
                            $button "Es ist ein Fehler unterlaufen";
                            exit;  
                              }
                            else
                            {
                            (
                            Formular ausgabe)

                            Kommentar


                            • #15
                              Zitat von johanna Beitrag anzeigen
                              @hausl habe es nur mit den Vars probiert dann mit $_POST["var"] $_POST['var'] $_POST[var]

                              alles durch!

                              @chiller20000

                              Das Formular darf ja normal garnicht mehr erstellt werden nach der Ausgabe des Backlinks

                              gebe ich ein Exit; aus und dann erscheint nur noch
                              PHP-Code:
                              </body></html
                              PHP-Code:
                               if(!empty($fehler)){
                                echo 
                              'Fehler Bitte gehen sie einen Schritt zur&uuml;ck und starten neu <a href="./">zur&uuml;ck</a>';
                                
                              $button "Es ist ein Fehler unterlaufen";
                              exit;  
                                }
                              else
                              {
                              (
                              Formular ausgabe)

                              Das geht nirgendwo aus deinen Scriptteilen von oben heraus. ich verstehe nicht warum du uns nicht einfach mal das ganze Script zeigst. Anders können wir dir nicht helfen, fertig!

                              Und auf ein Array greift man auch anders zu.
                              http://php.net/manual/de/language.types.array.php

                              Kommentar

                              Lädt...
                              X