Formular und Fehlertexte

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

  • Formular und Fehlertexte

    Hallo

    Folgendes Problem:
    Habe ein Formular bei dem dieses Script die Funktionen abruft:
    PHP-Code:
    // Prüft ob Kontaktformular abgeschickt wurde 
    if (isset($_POST['contact']))
    {   
       
    // Überprüfe Adress-Felder mit der Funktion CheckContactInput 
       
    $bAdressOK CheckContactInput ($saCustomer);

       
    // Wenn OK, versende Formular
       
    if ($bAdressOK)
       { 
          
    $saAdress $saCustomer;
          include (
    "inc/cfg_formmail.inc.php"); //maildatei für den Versand
       
    }
       else 
    // Es gibt eine Fehleingabe
       
    {
          
    // Kontaktformular aufrufen 
          
    $saAdress $saCustomer;
          include (
    "$cfgTplPath/tf_kontakt.tpl");   //Formulardatei
       

    }
    else  
    //wenn Formular nicht abgeschickt wurde
    {
       include (
    "$cfgTplPath/tf_kontakt.tpl");   //Formulardatei


    Mit diesem Code werden die Fehler vom Formular ausgegeben:
    PHP-Code:
    // Überprüfe alle Eingabefelder und lese Fehler-Texte
       
    echo $cfgErrCont[0];  // Überschrift der Fehlermeldungen, dies ist mein Problem, erscheint so immer
       
       
    if (!$saCustomer[Anrede])  //Überprüfung des Feldes
       
    {   
          echo 
    $cfgErrCont[1];  //Erste Fehlermeldung
          
    $bFieldOk 0;    //wenn nicht ausgefüllt/leer
       
    }

       if (!
    $saCustomer[Name])  //Überprüfung des Feldes
       
    {   
          echo 
    $cfgErrCont[2];  //Zweite Fehlermeldung
          
    $bFieldOk 0;    //wenn nicht ausgefüllt/leer
       
    }
       
    etc
    Macht der Benutzer einen Fehler im Formular, dann wird zuerst eine Überschrift mit anschliesendem Fehler oberhalb des Formulars ausgegeben.
    Funktioniert.
    Wurde das Formular korrekt ausgefüllt, wird versendet und eine Meldung erscheint mit Danke blabla..
    Hier der Code:
    PHP-Code:
    if (@mail($to$subject$message$headers))  //Formular versenden
    {
        echo 
    $cfgMeldeCont[1];  //Überschrift Dankemeldung
        
    echo $cfgMeldeCont[2];  //Dankemeldung
        
    include ("$cfgTplPath/cfg_err.inc.php");  //von Fehlerdatei Meldung
    }
    else
    {
        echo 
    $cfgMeldeCont[0];  //Überschrift Fehler Beschreibung
        
    echo $cfgMeldeCont[3];  //Fehler Beschreibung
        
    include ("$cfgTplPath/cfg_err.inc.php");  //von Fehlerdatei Meldung

    Aber leider erscheint auch noch die Fehlerüberschrift. Ich verstehe nicht, warum noch diese Fehlerüberschrift mit ausgegeben wird, da diese ja nur im else Teil aufgerufen wird. Oder mache ich hier einen Denkfehler?
    Wie schaffe ich es, dass mir diese Überschrift nach dem versenden nicht mehr Angezeigt wird, sondern nur noch die Danke Mitteilung??
    Hoffe mich verständlich ausgedrückt zu haben und kann mir da jemand helfen?

    Gruss Andreas
    Zuletzt geändert von AndreasS; 14.04.2004, 19:41.

  • #2
    du benutzt so zwar schöne arrays, aber das ist n bisschen schwer da als fremder durchzublicken. kannst du den code noch erweitert kommentieren, was, wann, wo kommt?

    Kommentar


    • #3
      @ TobiaZ

      Habe die Scripts noch mehr auskommentiert. Der Ablauf erfolgt wie dargestellt. Das Formular ruft die Konfigurationsdatei auf. Diese überprüft sämtliche Eingaben des Benutzers mit der Fehlerdatei. Wenn $bAdressOK keinen Fehler feststellt wird das Formular versendet mit der Maildatei. Diese gibt nach dem Versand eine Dankesmeldung aus oder eine Fehlermeldung.
      Bei fehlerhafter Eingabe des Benutzers wird eine Fehlerüberschrift mit dem entsprechenden Fehler ausgegeben. Das Problem ist, dass diese Fehlerdatei zum Anfang aufgerufen wird und ich mit echo $cfgErrCont[0]; die Fehlermeldung prinzipiell immer ausgebe. So hab ichs jetzt verstanden.
      Ich muss sagen, dass ich dieses Script nicht selber geschrieben habe, sondern nur meinen Bedürfnissen angepasst habe. Habe noch zu wenig Erfahrung in PHP.
      Wie kann ich nun eine funktion einbauen, die überprüft, ob $cfgErrCont[0]; überhaupt gebraucht wird, sprich ob Fehler in der Formulareingabe sind.
      Habe das schon mit
      PHP-Code:
      if ($bFieldOk 0)
      echo 
      $cfgErrCont[0]; 
      probiert, geht nicht.
      Ich hoffe man versteht nun wie das Script funktioniert.

      Gruss Andreas

      Kommentar


      • #4
        Kann mir niemand bei diesem Problem helfen??
        Oder versteht man nicht das Script?

        Andreas

        Kommentar


        • #5
          Ja, ich z.B.

          kennst du den Unterschied zwischen: =, == und === ?
          Schau dir mal deine If-Anweisung an:
          PHP-Code:
          if ($bFieldOk 0)
          echo 
          $cfgErrCont[0]; 

          Kommentar

          Lädt...
          X