Formulare erstellen - Teil 1

Im Gegensatz zu E-Mails kann man Formulare bequem auf der Homepage ausfüllen und abschicken. Da es um einiges benutzerfreundlicher ist, wird in diesem Teil erklärt, wie ihr mithilfe eines von mir vorgefertigten Skripts eigene Formulare erstellen könnt. Wenn ihr das Skript nutzt, müsst ihr dies in den Credits oder im Footer verlinken, z.B. FormMailer © by Riyuri
Fürs Verständnis setze ich minimale PHP-Kenntnisse voraus, die in den vorangegangenen Teilen beigebracht werden.

Wichtig für Baukasten-Nutzer: Um das Skript zu nutzen, muss euer Hoster PHP unterstützen! Bei den meisten Baukasten-Anbietern, wie z.B. Jimdo, ist dies allerdings nicht der Fall.

Schritt 1

Ladet euch das Skript runter (aktuelle Version: 1.0). Packt es in den gleichen Ordner wie euer Layout und bindet es mit include ein. Die Einbindung sollte erfolgen, bevor irgendwas an HTML-Code ausgegeben wird (vor dem <html>-Tag!).
Aber keine Sorge, das Skript ist extra so konzipiert, dass ihr wenig falsch machen könnt. Selbst wenn ihr es an einer falschen Stelle platziert, wird es trotzdem noch funktionieren.

Variante 1

(beste Variante)
Wenn ihr eine layout.php mit Funktionen für Header und Footer habt, sieht es zum Beispiel so aus:
<?php
include_once("class-form.php");
function Header() {
?>
<html>
<!-- der Rest des Headers -->
<?php
}
Und die Index-Datei:
<?php
include_once("layout.php"); //das Layout wird geladen (aber nicht angezeigt)

$form = new Formular();
$form->setBetreff("Betreff");
$form->createFeldName();
$form->sendForm();

Header(); //das zeigt den Header an
?>
<h1>Willkommen</h1>
Hier steht der Inhalt.
Und das Formular:
<?php
$form->showForm(); //das Formular wird dargestellt

Variante 2

(gute Variante)
Ihr könnt das Formular auch auf jeder Seite einbinden, wo ihr es braucht.
<?php
include_once("class-form.php");

$form = new Formular();
$form->setBetreff("Betreff");
$form->createFeldName();
$form->sendForm();

include_once("header.php"); //Der Header wird geladen und angezeigt
?>
<h1>Willkommen</h1>
Hier steht der Inhalt.
Und das Formular:
<?php
$form->showForm(); //das Formular wird dargestellt

Variante 3

(ok Variante...)
Falls ihr faul seid und nicht auf jeder Seite class-form.php einbinden wollt, könntet ihr dies auch in der header.php tun. Ich empfehle es euch jedoch nicht, denn das Formular wird zwar funktionieren, ABER versehentliche Doppel-Sendungen können nicht vermieden werden. Die Funktionalität ist also etwas eingeschränkt!
Die Header-Datei:
<?php
include_once("class-form.php");
?>
<html>
<!-- der Rest des Headers -->
Und die Index-Datei:
<?php
include_once("header.php"); //Der Header wird geladen und angezeigt
?>
<h1>Willkommen</h1>
Hier steht der Inhalt.
Und das Formular:
<?php
$form = new Formular();
$form->setBetreff("Betreff");
$form->createFeldName();
$form->showForm();
Ihr habt sicher bemerkt, dass hier im Gegensatz zu den anderen Varianten die Erstellung des Formulars $form = new Formular(); weiter unten steht, nur kurz vor $form->showForm();. Ihr könnt es auch oben hinschreiben, das ist egal. Es muss nur deshalb oben stehen, damit Doppelsendungen verhindert werden (was in diesem Fall aber ja sowieso nicht geht). Außerdem könnt ihr euch $form->sendForm(); sparen, es wird nicht benötigt.
Aber noch einmal: Vermeidet diese Variante wenn möglich! Ich zähle sie auf, weil sie funktioniert und einfach ist, aber die anderen sind eigentlich besser :)

Schritt 2

Als erstes öffnet ihr die class-form.php-Datei und passt sie etwas an. Alles, was ihr anpassen könnt (und müsst) steht im oberen Bereich. Verändert nichts in der restlichen Datei, wenn ihr nicht wisst, was ihr tut! Was ihr ändern könnt, ist hier grün markiert:

class Formular {
protected $yourmail = "mail@mail.de"; //Diese Mail durch deine eigene austauschen
public $betreffpre = "Hexenschule: "; //Dieser Text wird vor jedem Betreff angezeigt, wenn du setBetreff verwendet hast
public $betreffdefault = "Hexenschule"; //Dieser Text wird angezeigt, wenn sonst kein Betreff angegeben wurde
public $sent = "Die Nachricht wurde erfolgreich verschickt."; //Die Nachricht wird angezeigt, wenn das Formular erfolgreich abgeschickt wurde
public $idname = "Schülernummer"; //Wie lautet die Beschriftung von createFeldID?

Schritt 3

Jetzt ist auch schon alles fertig und ihr könnt euer Formular erstellen! Das Skript bietet alles, was ihr braucht.
Das Formular würde dann in etwa so aussehen (Der genaue Stil hängt von eurer CSS ab. Das Skript übernimmt nur die Hintergrundaufgaben, kein Styling!)


*
*
*
*
Geschlecht


Welche Sprachen sprichst du? *




*
Alle mit * markierten Felder müssen ausgefüllt werden.

So weit, so gut! Im nächsten Teil werden die einzelnen Funktionen im Detail erklärt.