MB: Wiederholte Eingabe Überprüfung im Code

Moin Community,

bei User Interaktion in komplexeren Strukturen (z.B. Kontaktformular, Login, Gästebuch usw.) muss man die Eingabe des Formulars überprüfen ob das Fomular die geforderten Daten überhaupt überbracht hat. Mir ist es passiert das ich mehrere male die selbe Formulareingabe überprüfte. Das ist unnötig und erhöt die Wartezeit.

Ist es konventionell her so das in Frameworks die Überprüfen an einer ganz bestimmten Stelle geschied? Ich hab das zum Testen so gemacht:

<?php
Validation::form( [
  'last'  => $_POST[ 'last' ],
  'first' => $_POST[ 'first' ],
  'first' => $_POST[ 'email' ]
] ) );
    
class Validation {
    
    public static function form( array $data ) : bool {
        foreach( $data as $key => $value ) {
            if( empty( $value ) ) {
                return false;
            }
        }
        return true;
    }
}

?>

Meine simple Lösung schänkt jedoch ein.

vlg MB

  1. Hallo MB,

    Vor allem solltest du möglichst alle Eingabefehler gemeinsam anmahnen und für aussagekräftige Fehlermeldungen sorgen. Für den erneuten Durchlaiuf solltest du zudem die Eingabefelder nicht leeren.

    Alles, was clientseitig überprüft werden kann, solltest du bereits überprüfen. Beachte jedoch, dass die serverseitige Überprüfung dennoch unbedingt notwendig ist.

    Also so:

    Fehler: Der gewählte Benutzername ist zu kurz. Das Geburtsdatum wurde nicht angegeben.

    Und nicht

    Fehler: Der Benutzername ist zu kurz.
    (Der Benutzer korrigiert die Eingabe)
    Fehler: Das Geburtsdatum wurde nicht angegeben.

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. Hello,

      Vor allem solltest du möglichst alle Eingabefehler gemeinsam anmahnen und für aussagekräftige Fehlermeldungen sorgen. Für den erneuten Durchlaiuf solltest du zudem die Eingabefelder nicht leeren.

      Alles, was clientseitig überprüft werden kann, solltest du bereits überprüfen. Beachte jedoch, dass die serverseitige Überprüfung dennoch unbedingt notwendig ist.

      Also so:

      Fehler: Der gewählte Benutzername ist zu kurz. Das Geburtsdatum wurde nicht angegeben.

      Und nicht

      Fehler: Der Benutzername ist zu kurz.
      (Der Benutzer korrigiert die Eingabe)
      Fehler: Das Geburtsdatum wurde nicht angegeben.

      Viel wichtiger ist die Zeile:

      Pro Fehleingabe wird die Spende von 1€ auf Konto DE06 2685 0001 0096 3838 56 fällig

      ;-P

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es
      Her mit der Kohle!
    2. Moin Matthias,

      Vor allem solltest du möglichst alle Eingabefehler gemeinsam anmahnen und für aussagekräftige Fehlermeldungen sorgen.

      Habe ich "clientseitig" vor.

      Für den erneuten Durchlaiuf solltest du zudem die Eingabefelder nicht leeren.

      ok habe aber auch nicht vor 😉. Nur zum zeigen.

      Alles, was clientseitig überprüft werden kann, solltest du bereits überprüfen.

      schon klar siehe oben.

      Wenn sich doch mal eine Fehlerchen eingeschlichen hat, sollte der server nur sagen: "Fehler", und schicks wieder zurück, weil ja serverseitig nicht aufgabe ist, dem User eine hilfe zu geben - so hab ichs verstanden. Wenn z.B. JavaScript deaktiviert ist, muss der Server wenigstens sagen, dass die Formular Daten unzureichent sind.

      Meine Frage war ja:

      • ob es eine zentrale stelle im Framework gibt wo man Eingabefehler überprüfen kann...
      • ...und wenn nicht wo man generell die Überprüfung macht
      • ... oder bleibt das überprüfen Framework intern und ist keine Zentrale aufgabe sondern nur eine lokale

      vlg MB

    3. @@Matthias Apsel

      Fehler: Der Benutzername ist zu kurz.
      (Der Benutzer korrigiert die Eingabe)

      Der Fehler sollte behoben werden. Und nein, das ist kein Fehler des Nutzers.

      Wie kann ein Nutzername zu kurz sein? Es kann bereits vergeben sein. Aber prinzipiell sollte ein Zeichen als Nutzername ausreichen.

      Fehler: Das Geburtsdatum wurde nicht angegeben.

      Fehler: Was geht euch mein Geburtstag an? Ich will keine Glückwunsch-E-Mail von euch, also braucht ihr diese Daten nicht.

      LLAP 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
      1. Hallo Gunnar Bittersmann,

        Es handelt sich um fiktive Fehlermeldungen. Die Angabe eines Geburtsdatums ist zum Beispiel bei einer Kontoeröffnung oder bei einem Kreditantrag notwendig.

        Bis demnächst
        Matthias

        --
        Rosen sind rot.