Vinzenz Mai: Frage zum Affenformular

Beitrag lesen

Hallo tinu,

Ich möcht ja garnicht, dass das Eintragsformular auf der selben Seite angezeigt wird, wie das Gästebuch selbst. Also müsst ich ja, sofern alle Daten richtig eingegeben wurden wieder auf das Gästebuch (die Einträge) weiterleiten... Was mit header() allerdings nicht mehr geht, da mit dem Formular ja bereits ein header ausgegeben wurde.

da gibt es einen einfachen Trick: gib das Formular noch nicht aus.

Hmm... also bringt das dämliche Affenformular für meine Bedürfnisse eigentlich garnix?! (ausser dass bei falschen Eingaben wieder das Formular mit den bereits eingegebenen Daten angezeigt werden würde).

Schauen wir uns zwei Grundtechniken an:

a) alles in einer Datei

Ermittle Typ des Aufrufs
   Mehrfachauswahl (in PHP switch())
       Erstaufruf
           Ausgabevariable := Gästebuch
       Erstelle neuen Eintrag
           Ausgabevariable := Leeres Formular
       Fehlerhaft ausgefülltes Formular
           Ausgabevariable := Ausgefülltes Formular mit Fehlermeldung
                              (ggf. alle Fehler markieren)
       Korrekt ausgefülltes Formular
           Speichere den Eintrag ab
           Ausgabevariable := Gästebuch
       Sonst was
           Ausgabevariable := Gästebuch
   Ende Mehrfachauswahl
   Zeige den Inhalt der Ausgabevariablen an.

b) zwei Dateien: 1) Gästebuch 2) Formularseite

Ermittle Aufruftyp der Formularseite
   Mehrfachauswahl (in PHP switch())
       Neuen Eintrag erstellen
           Ausgabevariable := Leeres Formular
       Fehlerhaft ausgefülltes Formular
           Ausgabevariable := Ausgefülltes Formular mit Fehlermeldung
                              (ggf. alle Fehler markieren)
       Korrekt ausgefülltes Formular
           Speichere den Eintrag ab
           Leite ohne eine Ausgabe vorzunehmen auf das Gästebuch weiter
       Sonst was
           Ausgabevariable := Gästebuch
   Ende Mehrfachauswahl
   Zeige den Inhalt der Ausgabevariablen an (im Falle der Weiterleitung
   wird dieser Code nicht erreicht)

b) hat den Vorteil, dass man nach erfolgreichem Abspeichern die
   Zuückschaltfläche im Browser bedienen kann, ohne dass ein zweiter Eintrag
   mit den gleichen Daten abgespeichert wird.

Im Fall von a) könntest Du das erfolgreiche Speichern über einen Session-
   Mechanismus absichern, so dass doppelte Einträge verhindert werden.

Eines der Grundprinzipien, das Du verinnerlichen solltest ist das EVA-Prinzip:

- E ingabe
 - V erarbeitung
 - A usgabe

Mache also keine Ausgaben, während Du noch an der Verarbeitung der Eingabedaten bist.

Freundliche Grüße

Vinzenz