Thread Hilfe mit Formular Script: CGI - Perl ### Formular (30 answers)
Opened by Strat at 2004-01-16 12:37

Dubu
 2004-01-24 14:47
#28188 #28188
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Captain Future,24.01.2004, 01:42]Aber wie mache ich das mit der missing()-Geschichte ?
Hier soll ja alles was fehlt (ob nur Vorname, ein oder zwei Einträge oder alle) aufgelistet werden und durch eine Variable $fehler ausgegeben werden.
[/quote]
So steht's aber nicht in deinem Programm.
Wenn Vorname, Nachname, E-Mail oder Text fehlen, gibst du eine Fehlerseite aus, die die Variable $fehler enthaelt, die dann aber noch nicht gefuellt ist.
Danach pruefst du erst auf Fehler in den weiteren Eingabefeldern. (Dabei wird falsch() aber auch ausgefuehrt, wenn diese - freiwilligen - Felder leer sind!)

Mein Tipp:
- Pruefe die Pflichtfelder. Wenn diese nicht oder falshc gefuellt sind, schreib einen Fehlertext (mit HTML-Formatierung) in die Variable $fehler.
- Pruefe die freiwilligen Felder, falls(!) sie Inhalt haben. Fuelle auch hier die Variable $fehler mit Fehlertext. (Uebrigens: Auslaendische PLZ bestehen nicht unbedingt (nur) aus Ziffern!)
- Wenn $fehler danach etwas enthaelt, gibt die Fehlerseite aus, ansonsten verschicke die E-Mail und gib die Erfolgsseite aus.

Quote
Ein paar Fehler sind wohl noch drin habe das Script + Error-File aktualisiert und auch die Formulardatei auf diesem Server (Siehe errors.txt).

Schaumermal ...

[Sat Jan 24 00:31:48 2004] formpost.pl: Argument "" isn't numeric in addition (+) at formpost.pl line 74.

- Deine Zaehlerdatei $countfile enthaelt offensichtlich keine Zahl, deshalb meckert Perl ueber die Addition $count = $count + 1;. Du pruefst auch nicht, ob der neue Zaehler in die Datei geschrieben werden kann (open(...) or irgendeine_warnung()).

[Sat Jan 24 00:31:48 2004] formpost.pl: Use of uninitialized value in string ne at formpost.pl line 117.
... 118 ... 119 ... 120


- Die Felder mit den Namen "CB01" bis "CB04" existieren nicht in deinem Formular; die heissen dort "input01" bis "input04".

Dann gibt's noch folgende Fipptehler:
- Zeile 125: "inut08" statt "input08"
- Zeile 189: "Eingabefehler" statt "Eingabefelder"

Ich hoffe das war's.

View full thread Hilfe mit Formular Script: CGI - Perl ### Formular