<?php
// Formular - Daten werden mit mail() versendet
// Funktion zur Bereinigung der Eingabefelder
function test_input($data) {
$data = trim($data); // leerzeichen vor und nach dem string löschen
$data = stripslashes($data); // löscht "\" von string
$data = htmlspecialchars($data); // HTML entities umwandeln (& > &)
return $data;
}
// Formular wird nur verarbeitet wenn MUSS-Feld NAME nicht leer ist
?>
<html>
<head>
<title>Formulardaten mit mail versenden</title>
</head>
<body>
<h1>Kontaktformular</h1>
<!-- START Formular ... -->
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>">
Name<sup>*</sup>: <input type="text" name="name">
<br>
E-Mail<sup>*</sup>: <input type="text" name="email">
<br>
Ihre Nachricht: <textarea name="nachricht" cols="70" rows="5"></textarea>
<br>
<input type="submit" name="submit" value="Submit">
</form>
<!-- ENDE Formular ... -->
<hr>
<?php
// Wurde das Formular mit Submit versendet?
// falls ja - auslesen der Felder + Mail Versand auslösen
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Formular wird nur verarbeitet wenn MUSS-Feld name + email nicht leer ist
if (empty($_POST["name"]) || empty($_POST["email"])) {
// Feld Name oder E-Mail ist leer - Meldung ausgeben
echo "<p>FEHLER: Felder Name und E-Mail müssen ausgefüllt werden.</p>";
} else {
// formular felder auslesen
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$nachricht = test_input($_POST["nachricht"]);
// formular felder ausgeben
echo "<h2>Ihre Angaben:</h2>";
echo "<p>Name: $name</p>";
echo "<p>E-Mail: $email</p>";
echo "<p>Ihre Nachricht: $nachricht</p>";
// mail Versand mit PHP
// wer bekommt die mail
$receiver = "info@pehape.ch";
// absender der mail
$sender = "noreply@pehape.ch";
// mail Betreff - inkl. Server Name "pehape.ch"
$subject = "Kontaktformular - ". $_SERVER['SERVER_NAME'];
// mail headers: absender
$headers = "From: $sender\r\n";
// mail headers: mail ist im html-format, UTF-8 kodiert
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";
// Nachricht
$message = "$nachricht";
// Alle Formularfelder
$message .= "<hr>$name<br>$email";
// aktuelles Datum und Uhrzeit ausgeben
$message .= "<hr>".date("d-M-Y H:i:s");
if (mail($receiver, $subject, $message, $headers)) {
// mail wurde abgeschickt
echo "<p>Besten Dank für die Nachricht.</p>";
} else {
echo "<p>FEHLER: Mail konnte nicht versendet werden.</p>";
}
}
}
?>
</body>
</html>