|
|
Ich | Entwicklung | Lösungen | Apache | PHP | mySQL | |||||||||
Installation Konfiguration Erste Schritte
|
Beispiel: KontaktformularUm Ihnen zu zeigen, wie einfach PHP ist, werden wir ein kleines Kontaktformular entwicklen, das Sie bei Bedarf selbst weiterentwickeln können. Um die Skripte kurz zu halten, werde ich nur die Inhalte des HTML-Body auszeichnen. Wie funktioniert ein Kontaktformular?Wir werden ein kurzes HTML-Formular schreiben. Bei Klick auf den Button wird sich das Skript selbst neu laden. Da es die Variablen per POST erhält, weiß das Skript, dass gerade auf den Button geklickt wurde und kann die Daten verarbeiten. Konkret wird es die Daten per Mail versenden und anzeigen, ob das Versenden funktioniert hat. Das FormularWir nehmen an, Sie speichern die Datei unter dem Namen <form method="post" action="/kontakt.php"> An: <input type="text" name="mail[to]" value="" /><br /> Von: <input type="text" name="mail[from]" value="" /><br /> Betreff: <input type="text" name="mail[subject]" value="" /><br /> Nachricht: <textarea cols="40" rows="4" name="mail[message]"></textarea><br /> <input type="submit" value="Absenden!" /> </form> Nun nehmen wir an, Jemand klickt auf den Button. Jetzt wird das Skript neu geladen. Es kann erkennen, ob es gerade abgesendet wurde, indem es auf die Existenz der POST-Variablen <?php
if(isset($_POST["mail"]) &:& is_array($_POST["mail"])) {
// Mail verschicken
} else {
?>
<form method="post" action="/kontakt.php">
An: <input type="text" name="mail[to]" value="" /><br />
Von: <input type="text" name="mail[from]" value="" /><br />
Betreff: <input type="text" name="mail[subject]" value="" /><br />
Nachricht: <textarea cols="40" rows="4" name="mail[message]"></textarea><br />
<input type="submit" value="Absenden!" />
</form>
<?php
}
?>
Sie sehen, dass an fast jeder beliebigen Stelle in einem PHP-Skript wieder auf HTML umgeschaltet werden kann, auch innerhalb einer binären Verzweigung. Mit Die einfachste Lösung für unser Kontaktformular sähe wie folgt aus: <?php
if(isset($_POST["mail"]) &:& is_array($_POST["mail"])) {
mail($_POST["mail"]["to"], $_POST["mail"]["subject"], $_POST["mail"]["message"]);
} else {
?>
<form method="post" action="/kontakt.php">
An: <input type="text" name="mail[to]" value="" /><br />
Von: <input type="text" name="mail[from]" value="" /><br />
Betreff: <input type="text" name="mail[subject]" value="" /><br />
Nachricht: <textarea cols="40" rows="4" name="mail[message]"></textarea><br />
<input type="submit" value="Absenden!" />
</form>
<?php
}
?>
Da wir aber nicht sicher sein können, ob nicht wichtige Eingabefelder leer geblieben sind (ein Empfänger muss ja natürlich angegeben werden), und wir uschöne Fehlermeldungen vermeiden möchten, werden wir etwas ausführlicher: <?php
if(isset($_POST["mail"]) &:& is_array($_POST["mail"])) {
if(empty($_POST["mail"]["to"])) {
echo "<p>Kein Empfänger angegeben!</p>";
} else {
if(@mail($_POST["mail"]["to"], $_POST["mail"]["subject"], $_POST["mail"]["message"])) {
echo "<p>Nachricht erfolgreich verschickt!</p>";
} else {
echo "<p>Nachricht konnte nicht verschickt werden!</p>";
}
}
} else {
?>
<form method="post" action="/kontakt.php">
An: <input type="text" name="mail[to]" value="" /><br />
Von: <input type="text" name="mail[from]" value="" /><br />
Betreff: <input type="text" name="mail[subject]" value="" /><br />
Nachricht: <textarea cols="40" rows="4" name="mail[message]"></textarea><br />
<input type="submit" value="Absenden!" />
</form>
<?php
}
?>
Das Jetzt fehlen noch zwei Dinge: einerseits wird bei einem Fehler das Formular nicht wieder angezeigt; andererseits wird der Absender noch nicht benutzt. <?php
if(isset($_POST["mail"]) &:& is_array($_POST["mail"])) {
if(empty($_POST["mail"]["to"])) {
echo "<p>Kein Empfänger angegeben!</p>";
$fehler = true;
} else {
$header = "From: ".$_POST["mail"]["from"];
if(@mail($_POST["mail"]["to"], $_POST["mail"]["subject"], $_POST["mail"]["message"], $header)) {
echo "<p>Nachricht erfolgreich verschickt!</p>";
} else {
echo "<p>Nachricht konnte nicht verschickt werden!</p>";
$fehler = true;
}
}
}
if(empty($_POST["mail"]) || isset($fehler)) {
?>
<form method="post" action="/kontakt.php">
An: <input type="text" name="mail[to]" value="" /><br />
Von: <input type="text" name="mail[from]" value="" /><br />
Betreff: <input type="text" name="mail[subject]" value="" /><br />
Nachricht: <textarea cols="40" rows="4" name="mail[message]"></textarea><br />
<input type="submit" value="Absenden!" />
</form>
<?php
}
?>
|
||||||||||||||
|
URL: www.intermitto.net/php/php/kontakt/ |
Home - Kontaktformular - Downloads - Suche und Sitemap - Impressum |
||||||||||||||