Formulare mit PHP erzeugen
[geschrieben am 16.10.2008]
Auf Seiten mit User-Interaktivität darf ein Formular meist nicht fehlen. Da man PHP und HTML gut kombinieren kann, bietet sich PHP auch bei den Formularen an. Die Grundidee ist, dass der User seine Angaben macht, eventuell eine E-Mail-Adresse hinterlässt und den Seitenbetreiber eine Nachricht zukommen lässt und das ohne ein eigenes E-Mail-Programm zu bemühen.
Idealerweise sollte der User eine Bestätigungsmeil erhalten - das ist aber Geschmackssache. Auf jeden Fall ist zu empfehlen, dass man als Seitenbetreiber eine E-Mail über das ausgefüllte Formular erhält.
In meinem Beispiel beschäftige ich mich im ersten Schritt lediglich mit einem einfachen Skript. Später können Maßnahmen zum Spam-Schutz hinzukommen, bestimmte Formularabfragen auf z.B. Vollständigkeit usw.
Zuerst fängt man also an mit der Eingabemaske z.B. eines simplen Kontaktformulars. Man definiert die Zieldatei, die beim Klicken auf die Absenden-Klickschaltfläche (Button) aufgerufen werden soll. Die gemachten Eingaben stehen dann dieser Datei als Variablen zur Verfügung. Diese Variablen definiert man, indem man die Eingabefelder entsprechend benennt. Hier ein Beispiel:
HTML-Code:
<form method="post" action="kontaktformular_senden.php">
Name: <input name="Name" type="text" size="20" /><br />
E-Mail: <input name="email" type="text" size="20" /><br />
Nachricht:<br />
<textarea name="Nachricht" cols="20" rows="4"></textarea><br />
<input type="submit" class="button" value="Absenden" />
</form>
Damit sind erst einmal alle nötigen Eingaben erzeugt. An die Datei kontaktformular_senden.php wird der Wert für Name, email und Nachricht übergeben. Das geschieht mittels der Methode POST
.
Die Datei kontaktformular_senden.php könnte dann folgendermaßen aussehen:
<?
//Hier werden die Variablen per POST ausgelesen
$name = $_POST['Name'];
$email= $_POST['email'];
$text= $_POST['Nachricht'];
//Ausgabe der Variablen zum Test oder zum Bestätigen
echo "Wir haben Ihre Nachricht erhalten:<br />
Name: $name<br />
E-Mail: $email<br />
Nachricht: $text";
// Formulardaten verschicken
$Website="www.ihreseite.de";
$IhreMail="mail@ihreseite.de";
$header = "From: $name<$email>\n";
$header .= "Reply-To: $email\n";
$header .= "Content-Type: text/plain";
mail("$IhreMail", "$Website","
Folgende Person hat das Kontaktformular von
$Website ausgefüllt:
-----------------------------------------------------
Name: $name
E-Mail: $email
Nachricht: $text
-----------------------------------------------------
","$header");
?>
Das Formular ist somit abgeschickt. Wie gesagt, das Formular wurde bis jetzt nicht überprüft. Das tut man normalerweise, um Fehleingaben zu vermeiden oder auch um Pflichteingaben zu definieren. So kann z.B. kein Formular ohne E-Mail und Namen gesendet werden.
Kommentare
Kommentar hinterlassen
Weitere PHP-Skripte
Weitere Code-Schnipsel: Script-Ladezeit mit PHP anzeigen | PHP Monatskalender | HTML-Formular Input sperren | PHPInfo-Datei mit Kennwortschutz | Datum und Timestamp in PHP | Dateigröße mit PHP ermitteln | MySQL-Datum mit PHP konvertieren | IP-Adresse anzeigen | Schleifen programmieren: FOR-Schleife | MySQL-Verbindung mit PHP | Einfache Datenbankabfrage | Syntax Highlight | Serverinformation und PHP-Version |
