Andi: Fehlertext bei Formular wird nicht ausgegeben

Hallo zusammen,

wie der Titel schon sagt: ich bekomme es zwar hin, dass die pflichtfelder (wenn nicht ausgefüllt) ein rotes Ausrufezeichen bekommen, der Fehlertext wird aber nicht angezeigt. Ich finde den Fehlder einfach nicht :(

Hier die PHP Datei:
HTML

Und hier die CSS:

CSS

BTW: Geht es auch, dass die Hintergrundfarbe des Feldes rot wird? Dann würd ich mir dieses blöde Ausrufezeichen sparen :)

Danke für Infos und viele grüße
Andi

  1. Hello,

    Hier die PHP Datei:
    HTML

    Witzbold. Mit der Ressource (geparste Datei) alleine können wir nichts anfangen. Wir benötigen die Datei mit dem PGP-Quelltext (ungeparst). Benenne sie ainfach um auf "2.php.txt" und lade diese zusätzlich auf Deinen Webspace :-))

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Witzbold. Mit der Ressource (geparste Datei) alleine können wir nichts anfangen. Wir benötigen die Datei mit dem PGP-Quelltext (ungeparst). Benenne sie ainfach um auf "2.php.txt" und lade diese zusätzlich auf Deinen Webspace :-))

      Mei wer denken kann is klar im Vorteil.

      Sorry, war in der Hektik noch.

      Hier ein neuer Link:

      PHP als TXT

      Danke dir

      1. Hello,

        Witzbold. Mit der Ressource (geparste Datei) alleine können wir nichts anfangen. Wir benötigen die Datei mit dem PGP-Quelltext (ungeparst). Benenne sie ainfach um auf "2.php.txt" und lade diese zusätzlich auf Deinen Webspace :-))

        Mei wer denken kann is klar im Vorteil.

        Sorry, war in der Hektik noch.

        Hier ein neuer Link:

        PHP als TXT

        Das Problem ist ganz einfach:

        Die Funktion Pruefen() schreibt zwar in ihre eigenen lokalen Fehlervariablen etwas hineine, aber die versickern dann. Wenn das Scope der Funktion verlassen wird, sind sie nämlich nicht mehr gültig und verschwinden...

        Für derartige Funktionen benutze ich immer gerne Arrays für die Übergabe der Daten und die Rückgabe von Fehlerwerten. Achte auf das & vor dem Array-Bezeichner. Die Daten können also über diesen Weg in die Funktion und aus der Funktion wieder heraus transportiert werden.

        Function Pruefen(&$_data, $_validation_rule, &$_validation_result)
        {
           $errors = 0;    ## Bei jedem nichtbehebbaren Fehler incrementieren

        #...

        return  $errors;
        }

        Und bei Formular genauso:

        Function Formular ($_data, $_validation_result)
        {

        }

        wobei $_data, $_validation_rule und $_validation_result dann assoziative Arrays sind.

        Dann kann man auch bestens mit den Filter-Funktionen von PHP arbeiten.
        http://de.php.net/manual/en/book.filter.php

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Das Problem ist ganz einfach:

          Servus Tom,
          erstmal danke für deine ausführliche Antwort. Sorry, ich hätte vielleicht dazu sagen sollen, dass PHP nicht wirklich mein Gebiet ist und ich den PHP Code einfach von ner anderen Stelle übernommen habe.

          Komisch ist allerdings, dass ich den Code auf einer anderen Seite (Formular im Tabellenlayout, gleicher PHP Code) ebenfalls eingesetzt hab, und da wird der Code ausgegeben...

          Wäre das in meinem Beispiel dann sowas (bitte nicht hauen :) )?

          function Pruefen(
          &$_stueckzahl, &$_anrede, &$_name,....
          )
          {
             $errors = 0;    ## Bei jedem nichtbehebbaren Fehler incrementieren
          if( $stueckzahl == "") {
                          $stueckzahlfehler = "<b>&nbsp;!</b>";
                          $errors= 1;
                  }
          ...

          return  $errors;
          }

          --------------------
          Function Formular ($_stueckzahl, $_anrede, $_name)
          {

          }

          1. Hello,

            erstmal danke für deine ausführliche Antwort. Sorry, ich hätte vielleicht dazu sagen sollen, dass PHP nicht wirklich mein Gebiet ist und ich den PHP Code einfach von ner anderen Stelle übernommen habe.

            Komisch ist allerdings, dass ich den Code auf einer anderen Seite (Formular im Tabellenlayout, gleicher PHP Code) ebenfalls eingesetzt hab, und da wird der Code ausgegeben...

            Wäre das in meinem Beispiel dann sowas (bitte nicht hauen :) )?

            function Pruefen(

            &$stueckzahl, &$anrede, &$name,....

            Das würde funktionieren, da Du ja nun Refernezen auf die Variablen übergibst, also "rein und raus" möglich sind.

            )
            {
               $errors = 0;    ## Bei jedem nichtbehebbaren Fehler incrementieren
            if( $stueckzahl == "") {
                            $stueckzahlfehler = "<b>&nbsp;!</b>";

            $errors++;

            }
            ...

            return  $errors;
            }

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de