Inhalt
- 1. Einleitung
- 2. Vorbereitung
- 3. Download
- 4. Einbindung
- 6. Vorlagendateien
- 7. Optionen
- 8. Beispiel 1: Kontaktformular
- 9. Beispiel 2: Standardformular
- 10. Beispiel 3: Umfrage
1. Einleitung
Das Formular-Plugin dient zum Erstellen, Absenden,
Validieren und Weiterverarbeiten von Formularen. Das Plugin hat eine Reihe von Einstellungsoptionen.
Beim Absenden des Formulars, überprüft das Plugin die Vollständigkeit und die Richtigkeit der ausgefüllten Felder.
Bei einem Fehler werden die fehlenden oder falsch ausgefüllten Felder markiert.
Ist die Überprüfung erfolgreich, werden die Eingabedaten an den Besitzer des Webauftritts per E-Mail versendet
ggf. bekommt der Nutzer eine vorkonfigurierte E-Mail-Nachricht.
Die Daten können je nach Bedarf in einer CSV-Datei gespeichert werden.
2. Vorbereitung
Um das Formular-Plugin in eine shtml-Datei einbinden zu können ist es notwendig die folgende Zeile in die Datei websource/.htaccess hinzufügen. (Wenn die Datei noch nicht existiert, soll diese neu erstellt werden):
Options +Includes
Optional werden die Formulareinträge in einer csv-Datei im Ordner vkdaten/tools/formular/eintraege/ gespeichert, z.B. vkdaten/tools/formular/eintraege/kontakt-2012.02.01.csv. Um die Auslieferung der csv-Dateien zu verhindern, folgende Zeilen müssen in die Datei websource/.htaccess geschrieben werden:
<Files ~ "\.csv$">
Order deny,allow
deny from all
</Files>
Dieses Plugin unterstützt die Zeichenkodierung UTF-8. Deswegen werden die Konfigurations-, Vorlagen- u. CSV-Dateien vom Plugin UTF-8 kodiert.
3. Download
Laden Sie sich die Datei Formular-Plugin Version 1.12.0330 herunter und speichern Sie die entpackten Dateien anschließend im Ordner vkdaten/tools/formular/
4. Einbindung
Fügen Sie folgende Zeile im Body-Bereich des HTML-Codes ein:
<!--#include virtual="/vkdaten/tools/formular/formular.php?conf=konfigurationsdateiname" -->
Wobei "konfigurationsdateiname" der Name der Konfigurationsdatei ohne .conf-Endung bezeichnet.
Beispiel:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>...</head>
<body>
...
<!--#include virtual="/vkdaten/tools/formular/formular.php?conf=kontakt" -->
...
</body>
</html>
5. Vorlagendateien
Das Formular sowie auch die Bestätigungs- und Fehlermeldung des Formulars verfügen über verschiedenen Vorlagen.
Die Vorlagendateien müssen im Ordner vkdaten/tools/formular abgelegt werden.
Beispiel:
vkdaten/tools/formular/kontakt-form.html vkdaten/tools/formular/kontakt-success.html
Formularvorlage
Die Formularvorlagen sind flexibel und lassen sich leicht anpassen. Sie enthalten den HTML-Code und die Felder- oder Fehlervariablen.
Beispiel: Format
{form_open}
...
{Feldname1}
{Feldname1_error}
{Feldname2}
{Feldname2_error}
...
{form_submit}
{form_close}
Beispiel: Format einer Feldvariable:
{Feldname}
Beispiel: Format einer Fehlervariable zur fehlenden oder falschen Dateneingabe:
{Feldname_error}
War das Absenden des Formulars erfolgreich, wird eine ensprechende Vorlage mit der Absendebestätigung gezeigt. Schlägt das Absenden der Formulardaten fehl, erscheint eine Vorlage mit entsprechenden Fehlermeldungen.
Von besonderem Interesse wird eine E-Mail-Vorlage für den Benutzer sein. In dieser Vorlage kann individuelle E-Mail-Ausgabe an den Empfänger/Absender angepasst werden
Die E-Mail-Vorlagen werden im Ordner vkdaten/tools/formular abgelegt.
Beispiel:
vkdaten/tools/formular/kontakt-antwort.html
6. Konfigurationsdatei
Das Formular-Plugin bietet zahlreiche Optionen, die in einer Konfigurationsdatei zeilenweise (Optionsname und Wert jeweils mit Tabulator getrennt) gespeichert werden können. Ein Wert kann ein oder mehrere Parameter (jeweils mit dem Zeichen | getrennt) enthalten. Mehrere Werte eines Parameters müssen mit einem Semikolon ( ; ) getrennt werden.
Beispiel:
form_field checkbox|interessen|Pop;Folk;Jazz;Schlager;Klassik|trim;required
Die Konfigurationsdatei eines Formulars muss im Ordner vkdaten/tools/formular abgelegt werden.
Beispiel:
vkdaten/tools/formular/konfigurationsdateiname.conf
7. Optionen
Übersicht der verfügbaren Optionen
| Optionsname | Optionswert | Beschreibung/Erklährung |
|---|---|---|
cvs_entries |
1 |
Die Formulareinträge werden in einer CSV-Datei gespeichert, wenn nicht dann hat die Option den Wert 0. |
cookie_locked |
1 |
Mehrfachabsendungen des Formulars werden verhindert, wenn nicht dann hat die Option den Wert 0. |
email_receiver |
Name|E-Mail-Adresse |
Die Option E-Mail-Empfänger hat folgende Werte: email_receiver Web-Abteilung|franz.musterman@rrze.uni-erlangen.de Mehreren Namen (z.B. Vor- und Nachname) werden mit einem Semikolon getrennt. Beispielsweise: email_receiver Franz;Musterman|franz.musterman@rrze.uni-erlangen.de |
email_subject |
Betreff |
E-Mail-Betreff, z.B.: email_subject Kontakt |
email_sender |
Absenderfeldname|E-Mail-Feldname |
Die Option E-Mail-Absender hat folgende Werte: email_sender name|email Mehreren E-Mail-Feldnamen werden mit einem Semikolon getrennt. Beispielsweise: email_sender vorname;nachname|email |
email_views |
Eintragdateiname|Antwortdateiname |
Die Option E-Mail-Vorlagendateien hat folgende Werte: email_views kontakt-emaileintrag|kontakt-emailantwort |
form_views |
Formulardateiname|Success-Dateiname|Error-Dateiname|Locked-Dateiname |
Die Option Formular-Vorlagendateien hat folgende Werte: form_views kontakt-form|kontakt-success |
form_error |
Präfix-Tag|Suffix-Tag |
Fehlermeldungstil (optional). Beispielsweise: form_error <b>|</b> |
form_field |
Eingabeart|Feldname|Standardwert|Feldregeln |
Mit dieser Option kann ein Formelement erstellt werden. |
rules_messages |
Feldregel-1;Feldregelmeldung-1|Feldregel-2;Feldregelmeldung-2 ... |
Ändert die Standard-Feldregelmeldungen. Beispielsweise: rules_messages required;Bitte beantworten Sie diese Frage. |
Liste der verfügbaren Feldregeln
| Regel | Parameter | Beschreibung | Beispiel |
|---|---|---|---|
| required | Nein | Das Feld wird benötigt. | |
| not_empty | Nein | Das Feld muss einen nicht-leeren und von 0 verschiedenen Wert enthalten. | |
| valid_email | Nein | Das Feld muss eine gültige E-Mail Adresse enthalten. | |
| valid_url | Nein | Das Feld muss eine gültige URL enthalten. | |
| min_options | Ja | Das Feld muss eine mindeste Anzahl von ausgewählte Optionen enthalten (für Dropdown-Listen geeignet). | min_options[2] |
| max_options | Ja | Das Feld darf eine maximal Anzahl von ausgewählte Optionen enthalten (für Dropdown-Listen geeignet). | max_options[4] |
| min_length | Ja | Das Feld muss eine mindeste Anzahl von Zeichen enthalten. | min_length[6] |
| max_length | Ja | Das Feld darf eine maximal Anzahl von Zeichen enthalten. | max_length[12] |
| exact_length | Ja | Das Feld muss eine genaue Anzahl von Zeichen enthalten. | exact_length[8] |
| alpha | Nein | Das Feld darf nur Buchstaben enthalten. | |
| alpha_numeric | Nein | Das Feld darf nur Buchstaben und/oder Zahlen enthalten. | |
| alpha_space | Nein | Das Feld darf nur Buchstaben, Zahlen und/oder Leerzeichen enthalten. | |
| numeric | Nein | Das Feld darf nur Zahlen enthalten. | |
| is_numeric | Nein | Das Feld darf nur numerische Zeichen enthalten. | |
| integer | Nein | Das Feld darf nur eine Ganzzahl enthalten. | |
| is_natural | Nein | Das Feld darf nur positive Zahlen enthalten. | |
| is_natural_no_zero | Nein | Das Feld muss eine Zahl größer als 0 enthalten. | |
| matches | Ja | Das Feld muss mit dem Feld des Parameters übereinstimmen. | matches[Feldname] |
Liste verfügbaren Vorverarbeitungsfunktionen
| Funktion | Parameter | Beschreibung |
|---|---|---|
| trim | Nein | Entfernt Leerzeichen am Anfang und Ende der Zeichenkette-Eingabe. |
| xss_clean | Nein | Durchführung der Daten durch die XSS-Filter-Funktion |
Beispiel der Nutzung der Vorverarbeitungsfunktionen:
form_field input|vorname||trim;required;xss_clean
form_field dropdown|liebling|Louis Armstrong;Heino;Michael Jackson;Tom Waits;Nina Hagen;Marianne Rosenberg|trim,required
8. Beispiel 1: Kontaktformular
Erstellung der Konfigurationsdatei (vkdaten/tools/formular/kontakt.conf)
# Kontaktformular
# Formulareinträge in einer CSV-Datei speichern
csv_entries 1
email_receiver Web-Abteilung|franz.musterman@rrze.uni-erlangen.de
email_subject Kontakt
email_sender name|email
email_views kontakt-emaileintrag|kontakt-emailantwort
form_views kontakt-form|kontakt-success
form_submit Absenden|id="submit"
form_error <p style="font-style:italic; color: red">|</p>
form_field input|name||trim;required;xss_clean
form_field input|email||trim;required;valid_email;xss_clean
form_field textarea|text||trim;required;xss_clean
Erstellung der Vorlagendatei des Formulars (vkdaten/tools/formular/kontakt-form.html)
{form_open}
<div>
<fieldset>
<legend>Kontaktformular</legend>
<div class="abstand">
<div class="zeile">
<div class="datenart">
<label for="name">Name</label>
{name_error}
</div>
<div class="eingabe">
{name}
</div>
</div>
<div class="zeile">
<div class="datenart">
<label for="email">E-Mail-Adresse</label>
{email_error}
</div>
<div class="eingabe">
{email}
</div>
</div>
<div class="zeile">
<div class="datenart">
<label for="text">Nachricht</label>
{text_error}
</div>
<div class="eingabe">
{text}
</div>
</div>
</div>
</fieldset>
<p>
{form_submit}
</p>
</div>
{form_close}
Erstellung der Formularvorlagen für die erfolgreiche Absendung-Bestätigung (vkdaten/tools/formular/kontakt-success.html)
<div class="hinweis">
<p>Erfolgreich abgesendet.</p>
<p>Vielen Dank, für Ihre Anfrage. Wir melden uns bei Ihnen baldmöglichst.</p>
</div>
Erstellung der E-Mail-Vorlagendatei für die E-Mail-Ausgabe des Eintrags (vkdaten/tools/formular/kontakt-emaileintrag.html)
-- Kontaktformular --
Name: {name}
E-Mail-Adresse: {email}
Nachricht: {text}
E-Mail-Ausgabe des Eintrags (Beispiel)
-- Kontaktformular --
Name: Frank Musterman
E-Mail-Adresse: frank.musterman@rrze.uni-erlangen.de
Nachricht: Hallo Welt!
Erstellung der E-Mail-Vorlagendatei für die E-Mail-Ausgabe des Antworts (vkdaten/tools/formular/kontakt-emailantwort.html)
Vielen Dank {name}, für Ihre Anfrage. Wir melden uns bei Ihnen baldmöglichst.
E-Mail-Ausgabe des Antworts (Beispiel)
Vielen Dank Frank Musterman, für Ihre Anfrage. Wir melden uns bei Ihnen baldmöglichst.
9. Beispiel 2: Standardformular
Erstellung der Konfigurationsdatei (vkdaten/tools/formular/standard.conf)
# Standardformular
# Formulareinträge in einer CSV-Datei speichern
csv_entries 1
email_receiver Franz;Musterman|franz.musterman@rrze.uni-erlangen.de
email_subject Standardformular
email_sender vorname;familienname|email
email_views standard-emaileintrag
form_views standard-form
form_submit Absenden|id="submit"
form_error <p>|</p>
#Angaben zur Person
form_field input|vorname||trim;required;xss_clean
form_field input|familienname||trim;required;xss_clean
form_field input|email||trim;required;valid_email;xss_clean
form_field input|wohnort||trim;required;xss_clean
# Hast du Schon bei uns gekauft?
form_field radio|schon_gekauft|Im vergangenen Monat;Im vergangenen Jahr;Nein, noch nie|trim;required
# Deine Musikinteressen
form_field dropdown|liebling|Louis Armstrong;Heino;Michael Jackson;Tom Waits;Nina Hagen;Marianne Rosenberg|trim;required
form_field checkbox|interessen|Pop;Folk;Jazz;Schlager;Klassik|trim;required
form_field textarea|zusatz||trim;required;xss_clean
Erstellung der Vorlagendatei des Formulars (vkdaten/tools/formular/standard-form.html)
{form_open}
<div>
<fieldset>
<legend>Angaben zur Person</legend>
<div class="abstand">
<div class="zeile">
<div class="datenart">
<label for="vorname">Vorname</label>
{vorname_error}
</div>
<div class="eingabe">
{vorname}
</div>
</div>
<div class="zeile">
<div class="datenart">
<label for="familienname">Familienname</label>
{familienname_error}
</div>
<div class="eingabe">
{familienname}
</div>
</div>
<div class="zeile">
<div class="datenart">
<label for="email">E-Mail-Adresse</label>
{email_error}
</div>
<div class="eingabe">
{email}
</div>
</div>
<div class="zeile">
<div class="datenart">
<label for="wohnort">Wohnort</label>
{wohnort_error}
</div>
<div class="eingabe">
{wohnort}
</div>
</div>
</div>
</fieldset>
<fieldset>
<legend>Hast du Schon bei uns gekauft?</legend>
<div class="abstand">
<div class="zeile">
<p>
{schon_gekauft}
</p>
{schon_gekauft_error}
</div>
</div>
</fieldset>
<fieldset>
<legend>Deine Musikinteressen</legend>
<div class="abstand">
<div class="zeile">
<p>Hier musst Du Dich für einen Star entscheiden</p>
<p>
{liebling}
</p>
{liebling_error}
</div>
<div class="zeile">
<p>Hier kannst Du mehrere Möglichkeiten ankreuzen</p>
<p>
{interessen}
</p>
{interessen_error}
</div>
<div class="zeile">
<label for="zusatz">Wenn du uns sonst noch etwas über Deine Wünsche und Erwartungen an unser Programm mitteilen willst, kannst du dies hier tun</label>
<p>
{zusatz}
</p>
{zusatz_error}
</div>
</div>
</fieldset>
<p>
{form_submit}
</p>
</div>
{form_close}
Erstellung der E-Mail-Vorlagendatei für die E-Mail-Ausgabe des Eintrags (vkdaten/tools/formular/standard-emaileintrag.html)
-- Angaben zur Person --
Vorname: {vorname}
Familienname: {familienname}
E-Mail-Adresse: {email}
Wohnort: {wohnort}
-- Hast du Schon bei uns gekauft? --
{schon_gekauft}
-- Deine Musikinteressen --
Star: {liebling}
Musik: {interessen}
Wünsche und Erwartungen: {zusatz}
E-Mail-Ausgabe des Eintrags (Beispiel)
-- Angaben zur Person --
Vorname: Frank
Familienname: Musterman
E-Mail-Adresse: frank.musterman@rrze.uni-erlangen.de
Wohnort: Erlangen
-- Hast du Schon bei uns gekauft? --
Im vergangenen Monat
-- Deine Musikinteressen --
Star: Marianne Rosenberg
Musik: Pop, Jazz, Klassik
Wünsche und Erwartungen: Hallo Welt!
10. Beispiel 3: Umfrage
Erstellung der Konfigurationsdatei (vkdaten/tools/formular/umfrage.conf)
# Umfrageformular
# Formulareinträge in einer CSV-Datei speichern
csv_entries 1
# Mehrfachabsendungen verhindern
cookie_locked 1
email_receiver PR-Abteilung|franz.musterman@fau.de
email_subject Umfrage: Studium und Universität
email_sender name|email
email_views umfrage-emaileintrag
form_views form_views umfrage-form|umfrage-success||umfrage-locked
form_submit Absenden|id="submit"
form_error <p style="font-style:italic; color: red">|</p>
form_field hidden|name|Umfrage
form_field hidden|email|umfrage@fau.de
# An welche Fakultät studieren Sie?
form_field dropdown|fakultaeten|Bitte wählen;Philosophische Fakultät und Fachbereich Theologie;Rechts- und Wirtschaftswissenschaftliche Fakultät;Medizinische Fakultät;Naturwissenschaftliche Fakultät;Technische Fakultät|trim;not_empty
# In welchem Studienjahr bzw. Studienniveau befinden Sie sich?
form_field radio|studienjahr|Erstes;Zweites;Drittes;Viertes;Magister|trim;required
# Wie würden Sie die Zufriedenheit mit Ihrer Uni angeben?
form_field radio|zufriedenheit|sehr zufrieden;zufrieden;weder noch;eher nicht zufrieden;unzufrieden|trim
# Bekommen Sie jetzt ein Stipendium?
form_field radio|stipendium|ja;nein|trim
form_field checkbox|stipendium_ausgeben|zur Finanzierung der Studiengebühren; zur Finanzierung anderer Kosten;für den Lebensunterhalt;für Hobbys;Sonstiges|trim;max_options[2]
form_field textarea|stipendium_zusatz||trim;xss_clean
rules_messages required;Bitte beantworten Sie diese Frage.|not_empty;Bitte beantworten Sie diese Frage.
Erstellung der Vorlagendatei des Formulars (vkdaten/tools/formular/umfrage-form.html)
<p>
Lieber Studierender, vielen Dank, dass Sie sich für die Umfrage kurz Zeit nehmen.
Sie werden ungefähr x Minuten dafür benötigen. Herzliche Grüße von der Universität.<br/>
Diese Umfrage enthält 4 Fragen.
</p>
<p>
Hinweise zum Datenschutz:<br/>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
</p>
{form_open}
{name}
{email}
<div>
<fieldset>
<legend>An welche Fakultät studieren Sie?</legend>
<div class="abstand">
<div class="zeile">
{fakultaeten_error}
<p>
{fakultaeten}
</p>
</div>
</div>
</fieldset>
<fieldset>
<legend>In welchem Studienjahr bzw. Studienniveau befinden Sie sich?</legend>
<div class="abstand">
<div class="zeile">
{studienjahr_error}
<p>
{studienjahr}
</p>
</div>
</div>
</fieldset>
<fieldset>
<legend>Wie würden Sie die Zufriedenheit mit Ihrer Uni angeben?</legend>
<div class="abstand">
<div class="zeile">
{zufriedenheit_error}
<p>
{zufriedenheit}
</p>
</div>
</div>
</fieldset>
<fieldset>
<legend>Bekommen Sie jetzt ein Stipendium?</legend>
<div class="abstand">
<div class="zeile">
{stipendium_error}
<p>
{stipendium}
</p>
</div>
<div class="zeile">
<p>
Wenn ja: Wofür geben Sie das Geld aus? (bitte maximal 2 Antworten auswählen!)
</p>
{stipendium_ausgeben_error}
<p>
{stipendium_ausgeben}
</p>
<p>
{stipendium_zusatz}
</p>
</div>
</div>
</fieldset>
<p>
{form_submit}
</p>
</div>
{form_close}
Erstellung der Formularvorlagen für die erfolgreiche Absendung-Bestätigung (vkdaten/tools/formular/umfrage-success.html)
<div class="hinweis" style="width: 75%">
<p>
Vielen Dank, dass Sie an der Umfrage teilgenommen haben.<br />
Wir wünschen Ihnen ein erfolgreiches Semester.
</p>
</div>
Erstellung der Formularvorlagen für das bereits abgesendetes Formular (vkdaten/tools/formular/umfrage-locked.html)
<div class="hinweis_wichtig" style="width: 75%">
<p>
Sie haben diese Umfrage bereits durchgeführt.<br />
Bitte kontaktieren Sie Franz Musterman ( franz.musterman@fau.de ) für weitere Unterstützung.
</p>
</div>
