Formulare mit HTML_Quickform

Nov 2004
15

Da ich gerade ein Bestellformular basteln muss, hab ich mich mal nach dem ultimativen Formmailer umgesehen. Eigentlich ja ein sehr simples Script, aber ich wollte PHP, sicher (Empfänger-Adresse nicht als Post-Variable) und gutes Templating. Also keine 5 Seiten ans eigene Design anpassen nur um ‘Vielen Dank für ihre Bestellung’ und Fehlerseiten zu bekommen.

Nachdem ich in den Myriaden von grottigen PHP-Scripts der Script-Archive die Nadel im Heuhaufen nicht gefunden habe und relativ schnell auf das HTML_Quickform-Package von PEAR aufmerksam geworden bin, habe ich meinen Formmailer halt selbst gebastelt.

HTML_Quickform ist eigentlich kein Formmailer sondern ein Sammlung von Klassen um Formulare zu generieren. Also mit

$form->addElement('text', 'email', 'E-Mail: ');

bekommt man ein Input-Feld für die Email. Viel genialer sind allerdings die Rules. Mit denen kann man angeben, ob ein Feld required ist, eine bestimmte Länge hat, eine Regex matcht oder eine eine gültige Email-Adresse ist:

$form->addRule('email', 'Bitte eine gültige Email-Adresse angeben',
    'email',  '', 'client');

Damit bekommt man Formular-Validierung quasi geschenkt und hat keine Ausrede mehr :) Die Validierung geschieht wahlweise per Javascript oder Serverseitig.

Das ganze Package ist sehr gut konfigurierbar, ich musste nie den Source-Code anpassen und habe alles realisieren können was ich wollte. Man kann auch Smarty als Template-Engine benutzen, was in meinem Fall aber etwas Overkill wäre. Da die Standard-Ausgabe des Formulars Tabellen benutzt (kann ich mit leben) hat man hier aber einen guten Einstiegspunkt.

Um jetzt wieder zum Formmailer zurückzukommen um den es ja eigentlich ging — schließlich habe ich bisher nur ein Formular: Die Formular-Daten sind bei erfolgreicher Validierung mit einer process-Prozedur verarbeitbar und mithilfe des Mail-Packages von PEAR hab sogar ich es geschaft, die Daten per Mail zu verschicken. Die Daten in eine Datenbank zu schreiben wäre aber genau so gut möglich.

Alles in Allem eine sehr gute Entscheidung. Ich muss mich nie mehr nach Formmailern umsehen, mein Formular wird sogar validiert und alles wird in einer einzigen PHP-Datei gemacht, d.h. ich kann alles inline anzeigen und muss nicht mehrere Dateien ans Design anpassen.

Es gibt zwei sehr gute Tutorials, die einem den Einstieg erleichtern:

Die Dokumentation ist sehr umfangreich und eine Präsentation des Autors gibt weitere Einblicke.

Kommentare:

Tut mir leid, es sind keine Kommentare mehr möglich.