Formulare im Schnellverfahren mit Form Tools
Selbst bei kleinen Formularen verursacht die Validierung und Speicherung der User-Daten hohen Programmier- Aufwand. Das Skript Form Tools sorgt für Abhilfe.

- Formulare im Schnellverfahren mit Form Tools
- Formular-Daten validieren
Schnell eine Umfrage online stellen, ein kleines Gewinnspiel organisieren: Für die meisten Webdesigner sind Formulare eine Qual, weil selbst das kleinste Formular einen hohen Programmieraufwand für die Erfassung und Verarbeitung der Formulardaten mit sich bringt. So manche gute Idee bleibt da auf ...
Schnell eine Umfrage online stellen, ein kleines Gewinnspiel organisieren: Für die meisten Webdesigner sind Formulare eine Qual, weil selbst das kleinste Formular einen hohen Programmieraufwand für die Erfassung und Verarbeitung der Formulardaten mit sich bringt. So manche gute Idee bleibt da auf der Strecke, weil der Aufwand für die Umsetzung zu groß ist. Das Open-Source-Script Form Tools (www.formtools.org ) bringt hier eine enorme Erleichterung, vor allem für Webmaster, die regelmäßig mit Formularen arbeiten wollen oder müssen.Form Tools erstellt keine Formulare - das HTML müssen Sie also weiterhin selbst schreiben. Das Skript kümmert sich aber um alles, was nach dem Absenden der Formulardaten durch den User passiert: Es validiert die eingegebenen Daten, speichert sie in eine MySQL-Datenbank und bietet Export-Optionen zum Ansehen im Browser, zum Drucken, als Excel-Tabelle und im XML-Format.Der Clou aber ist: Form Tools verarbeitet jegliche Art von Formular-Daten, ohne dass große Anpassungen im HTML-Code des Formulars oder Programmierung am Server für die Datenspeicherung nötig wird. Lediglich eine kurze, Assistentengeführte Einrichtung jedes neuen Formulars in Form Tools muss durchgeführt werden. Das dauert in der Regel nicht länger als ein paar Minuten. Die optische Gestaltung der Formulare ist damit vollständig losgelöst von der späteren Verarbeitung der Daten.Form Tools verarbeitet Daten, die von beliebigen Formularen per POST-Request gesendet werden (die AJAX-Variante geht auch mit GET-Requests um), sogar wenn dies zum Beispiel aus Flash oder Silverlight heraus geschieht. Selbst mit Formularen, die einen Datei-Upload vorsehen, kann Form Tools umgehen. Das Skript eignet sich aber auch dazu, Formulare für Dritte zu verarbeiten.In der Admin-Oberfläche können nämlich beliebig viele User angelegt werden, die mit beschränkten Zugriffsrechten beispielsweise nur die Daten eines bestimmten Formulars ansehen dürfen. Auch das Template- Design ist individuell anpassbar, sodass der Admin einem Kunden beispielsweise eine Seite mit seinen aktuellen Umfrage-Daten im Firmen-Design präsentieren kann.Neben der einfachen Datenverarbeitung über die process.php von Form Tools gibt es seit Version 2 auch eine API, die für AJAX-Formulare verwendet werden kann. Vorteil hier vor allem: Form Tools verarbeitet via API sogar mehrteilige Formulare, wohingegen die process.php lediglich einzelne Formulare, also einzelne POST-Requests verarbeitet.Ebenfalls aus der Natur der Sache heraus nur über die API realisierbar ist eine serverseitige Validierung der Formular- Daten. Clientseitige Validierung per JavaScript ist aber auch bei der einfachen Variante möglich.
Anlegen eines neuen Formulars
Zunächst erstellen Sie mit HTML und optional CSS eine Seite mit dem HTML-Formular, das die Userdaten später an Form Tools schicken soll. Laden Sie die Seite mit dem Formular auf Ihre Website. Da Form Tool keiner Programmierung bedarf, arbeitet es problemlos auch mit Content-Management-Systemen zusammen.Anschließend legen Sie in der Admin-Oberfläche von Form Tools ein neues Formular mit Add Form an. Hier geben Sie dem Formular einen Namen, tippen die URL der Formularseite ein und definieren, auf welche Seite der User weitergeleitet werden soll, wenn er das Formular abgeschickt hat.

Wir wählen zunächst den einfachen Weg über die process.php, also die Option Direct. Form Tools liefert die Code-Zeile für die form action sowie zwei Input-Felder mit versteckten Inhalten, die Sie nun in Ihr Formular kopieren. Dann rufen Sie das Formular im Browser auf, tragen beliebige Daten in alle Felder ein und senden das Formular ab. Jetzt kehren Sie zu Form Tools zurück und klicken auf Refresh Page.Im nächsten Schritt definieren Sie nun anhand der eben gesendeten Test-Daten, wie die User-Daten in der Datenbank gespeichert werden sollen. Eine Smart Fill genannte Funktion macht das Ausfüllen der Tabelle an dieser Stelle vor allem auch dann sehr bequem, wenn das Formular sehr viele Felder enthält. Die Funktion übernimmt nämlich optional die Feldbezeichnungen aus dem Formular direkt in die Datenbank.Wichtig und sinnvoll ist hier noch, gegebenenfalls die Feldgrößen anzupassen. Ein Datenbankeintrag für eine Postleitzahl nimmt beispielsweise unnötig viel Speicherplatz in Anspruch, wenn das Feld den Standardwert von 256 Zeichen beibehält, von denen aber nur 5 benötigt werden.Ein Kommentar- Feld im Formular benötigt dagegen meist mehr Platz als nur 256 Zeichen, da sonst der hintere Teil der gesendeten Daten verworfen würde. Eine ID, das Datum und die IP-Adresse des Users werden übrigens automatisch gespeichert, ohne dass diese im Formular extra in einem versteckten Feld abgefragt werden müssten.Im abschließenden Schritt wird nun noch eines der beiden versteckten Formfelder wieder aus dem Formular entfernt:
<input type="hidden" name="form_
tools_initialize_form" value="1" />
Jetzt ist das Formular einsatzbereit und Form Tool speichert die gesendeten Daten automatisch in die Datenbank.Das so angelegte Formular lässt sich übrigens jederzeit nachträglich verändern, sodass man beispielsweise noch zusätzliche Felder einfügen oder verändern kann. Sinnvoll ist das aber nur so lange, wie noch keine Userdaten gesammelt wurden, denn fehlende Daten kann auch Form Tool nicht nachträglich ergänzen.Der Admin kann die Daten in Form Tool entweder als druckerfreundliche HTML-Seite nach verschiedenen Auswahl- und Sortierkriterien ausgeben und auch bequem in eine Excel-Tabelle oder als XML-Datei exportieren. Für WordPress gibt es außerdem ein Plugin (docs.formtools.org/wordpress_ plugin/ ), das die gesammelten Daten innerhalb der WordPress-Admin zugänglich macht.Da die gesammelten Daten in der Datenbank liegen, kann auf die Daten aber auch jederzeit direkt zugegriffen werden, beispielsweise über ein PHP-Script, das die Daten unabhängig von Form Tools verarbeitet. Lediglich die Datenstruktur sollte unangetastet bleiben, damit Form Tools nicht ins Stolpern gerät.
Komplexere Formulare - die API
Wirklich kompliziert ist auch der Einsatz der Form Tools API nicht, erfordert aber etwas mehr Aufwand als ein Formular, das über die process.php verarbeitet wird. Voraussetzung ist zunächst, dass die Seite, die das Formular beinhaltet, die Dateiendung .php und nicht .html besitzt, weil Form Tools sonst nicht damit arbeiten kann.Im ersten Schritt integrieren Sie den API-Aufruf in die Formular-Seite:
<?php
require_once("pfad/zu/form_tools/
global/api/api.php");
$fields = ft_api_init_form_page("",
"test");
$params = array(
"submit_button" => "submit_button_
name_attribute",
"next_page" => "danke.php",
"form_data" => $_POST,
"file_data" => $_FILES,
"finalize" => true
);
ft_api_process_form($params);
?>
Anpassen müssen Sie hier den Pfad zur Form-Tools-Installation sowie den korrekten Wert für das name-Attribut des Submit- Buttons im Formular sowie den Namen der Datei, die der User nach erfolgreichem Abschicken des Formulars sehen soll. Wer die Übermittlung der Formular-Daten per GET bevorzugt, ändert die Zeile
"form_data" => $_POST,
entsprechend in
"form_data" => $_GET,