NOF-Forum | Referenzen | Kontakt | Impressum
Formular-Generator - von Werner-Zenk.de und Tutorial zu NOF und Mobirise. Leider hat Werner-Zenk.de seine Webseiten am 10.07.2022 eingestellt.
Hier noch ein Beispiel zum Ein- und Ausblenden von Feldern mit diesem Quelltext-Tutorial.
Dieser Kontakt-Formular Generator ist eigentlich selbsterklärend. Bitte erstellt Eurer Formular hier:
Zum Formular-Generator auf meiner Seite “Mobirise-Tutorials.com”
Es gibt jede Menge Optionen für das Formular. Felder hinzufügen eine Mail an den Benutzer senden lassen oder auch einen Spamschutz einstellen, die Farben ändern und unendlich viele andere Anpassungen vornehmen. Auch HTML5 kann berücksichtigt werden. Unten eine Ansicht vom neuen Generator.
... auf der letzten Seite (Formular erstellen) generiert das Programm eine vollständige HTML-Seite, die auch direkt zu verwenden ist, indem man den gesamten Code (unten) z.B. als “index.php” speichert und auf den Server in ein Verzeichnis seiner Wahl kopiert und z.B. mittels Iframe verlinkt.
Unten ein Beispiel des Codes. Ich habe hier die Bereiche, die Ihr zum direkten Einbau in NOF oder Mobirise benötigt, farbig markiert. Lest bitte unten weiter.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body, textarea {
font-family: Verdana, Sans-Serif;
font-size: 14px;
}
span.pflichtfeld {
font-size: 12px;
color: Red;
}
span.hilfetext {
font-size: 10px;
font-style: Oblique;
}
blockquote {
width: 385px;
}
</style>
</head>
<body>
<?php
/*
Aktion: Formulardaten als E-Mail versenden.
Formular - PHP 5.4+, Zeichenkodierung: UTF-8
Erstellt mit dem Formular Generator (28.03.2016) -
http://www.nof-tutorials.com/Webbausteine-Formular-Generator/formulargenerator.php
Bitte testen Sie das Formular ausführlich und
beachten Sie die Hinweise im Quelltext!
*/
// PHP Fehlermeldungen (1 um das Formular zu testen) anzeigen.
error_reporting(1); // (0/1)
// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
$Weiterleitung = "index.php";
$name = isset($_POST["name"]) ? strip_tags(trim($_POST["name"])) : ""; // Name
$email = isset($_POST["email"]) ? strip_tags(trim($_POST["email"])) : ""; // E-Mail
$betreff = isset($_POST["betreff"]) ? strip_tags(trim($_POST["betreff"])) : ""; // Betreff
$nachricht = isset($_POST["nachricht"]) ? strip_tags(trim($_POST["nachricht"])) : ""; // Nachricht
// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["name"=>"", "email"=>"", "betreff"=>"", "nachricht"=>"", "sicherheit"=>""];
if (isset($_POST["submit"])) {
$Fehler["name"] = strlen($_POST["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
$Fehler["email"] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false ? " Geben Sie eine gültige E-Mail-Adresse ein!" : "";
$Fehler["betreff"] = strlen($_POST["betreff"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
$Fehler["nachricht"] = strlen($_POST["nachricht"]) < 10 ? " Bitte füllen Sie dieses Feld aus (min. 10 Zeichen)!" : "";
$Fehler["sicherheit"] = (md5($_POST["zip"]) != $_POST["zip2"]) ? "Die Rechenaufgabe ist leider falsch!" : "";
}
// Sicherheitsabfrage - Rechenaufgabe
$Z0 = [mt_rand(1, 9), mt_rand(1, 9)];
$Z1 = max($Z0); $Z2 = min($Z0);
$Spam = $Z1 . " + &#" . (48 + $Z2) . ";";
$Schutz = md5($Z1 + $Z2);
// Formular erstellen
$Formular = "
<form action='" . $_SERVER["SCRIPT_NAME"] . "' method='post'>
<p>
<label> Name:
<span class='pflichtfeld'>✲ " . $Fehler["name"] . "</span><br>
<input type='text' name='name' value='" . $name . "' size='35' required='required'>
</label>
</p>
<p>
<label> E-Mail:
<span class='pflichtfeld'>✲ " . $Fehler["email"] . "</span><br>
<input type='email' name='email' value='" . $email . "' size='35' required='required'>
</label>
</p>
<p>
<label> Betreff:
<span class='pflichtfeld'>✲ " . $Fehler["betreff"] . "</span><br>
<input type='text' name='betreff' value='" . $betreff . "' size='45' required='required'>
</label>
</p>
<p>
<label> Nachricht:
<span class='pflichtfeld'>✲ " . $Fehler["nachricht"] . "</span><br>
<textarea name='nachricht' cols='40' rows='8' required='required'>" . $nachricht . "</textarea>
</label>
</p>
<p>
<label> Sicherheitsabfrage:
<span class='pflichtfeld'>✲ " . $Fehler["sicherheit"] . "</span><br>
<em>" . $Spam . "</em> =
<input type='text' name='zip' size='4' pattern='[0-9]{1,2}' required='required' autocomplete='off'>
</label>
<input type='hidden' name='zip2' value='" . $Schutz . "'>
<br><span class='hilfetext'> Bitte lösen Sie die Rechenaufgabe. </span><br>
</p>
<p>
<br>
<input type='submit' name='vorschau' value='Vorschau' formnovalidate='formnovalidate'> -
<input type='submit' name='submit' value='Formular absenden'>
</p>
<p>
<small>Bitte alle mit <span class='pflichtfeld'>✲</span>
markierten Felder ausfüllen.</small>
</p>
</form>
";
// Vorschau
if (isset($_POST["vorschau"])) {
echo strip_tags("<blockquote>
<h4>Vorschau</h4>
<b>Name:</b> $name <br>
<b>E-Mail:</b> $email <br>
<b>Betreff:</b> $betreff <br>
<b>Nachricht:</b> <br>" . nl2br($nachricht) . "
</blockquote>", "<blockquote><h4><b><br>");
}
// Formular abgesendet
if (isset($_POST["submit"])) {
// Sind keine Benutzer-Eingabefehler vorhanden
if (implode("", $Fehler) == "") {
// Daten als E-Mail versenden (Vorschlag) - Bitte anpassen!
// Zeitzone und das aktuelle Datum setzen
// http://de3.php.net/manual/de/timezones.europe.php
date_default_timezone_set("Europe/Berlin");
$Datum = date("d.m.Y H:i");
// Empfänger E-Mail
$Mailto = "name@example.com";
// Inhalt der E-Mail setzen
$Text = " Gesendet am: $Datum Uhr
Name: $name
E-Mail: $email
Betreff: $betreff
Nachricht: $nachricht
";
// E-Mail versenden
mb_internal_encoding("UTF-8");
$Betreff = mb_encode_mimeheader($betreff, "UTF-8", "Q");
$Kopfzeile = "MIME-Version: 1.0;\nFrom: " . mb_encode_mimeheader($name, "UTF-8", "Q") .
"<" . $email . ">" . "\nContent-Type: text/plain; Charset=UTF-8;\n";
if (mail($Mailto, $Betreff, $Text, $Kopfzeile)) {
echo "<p>Vielen Dank, die Nachricht wurde versendet.</p>";
}
else {
// Wenn die Daten nicht versendet werden konnten,
// wird die E-Mail-Adresse für den direkten Kontakt eingeblendet.
echo "<p>Beim Senden der Nachricht ist ein Fehler aufgetreten!<br>" .
"Bitte wenden Sie sich direkt an: <a href='mailto:" . $Mailto . "'>" . $Mailto . "</a></p>";
}
// Weiterleitung
echo "<p><a href='" . $Weiterleitung . "' target='_top'>Weiter</a></p>";
}
else {
// Formular und Benutzer-Eingabefehler ausgeben
echo $Formular;
}
}
else {
// Formular ausgeben
echo $Formular;
}
?>
</body>
</html>
Beachte bitte, dass persönliche Daten eines Benutzers, nur über eine verschlüsselte Verbindung (https:) zum Webserver gesendet werden sollten! Dies betrifft insbesondere gewerbliche Seiten.
Viel Spaß!
Tutorials von Thomas Frei-Herrmann