Seite 2 von 2

Re: Skript (Kontaktformular) einbauen auf Testseite

Verfasst: Do 21. Nov 2024, 20:45
von Dieter53
So sieht das jetzt aus bei mir
Vorname.jpg
Aber ganz ehrlich, jetzt weiß ich überhaupt nicht mehr was los.

Re: Skript (Kontaktformular) einbauen auf Testseite

Verfasst: Do 21. Nov 2024, 21:08
von Volker
Normalerweise erstellt man das Formular mit dem Generator vom Werner. Der liegt beim Tommy auf dem Server.

Hier : https://www.mobirise-tutorials.com/Form ... -Generator

Da erstellt man das Formular nach seinen Wünschen und dann erstellt der Generator den PHP Code, den Du in Mobirise einbindest wie bereits von Dir gemacht.

Zum Thema Weiterleitung:
Das musst Du auch ändern bei $Weiterleitung = index.php auf den Namen des Kontaktformulars - in Deinem Fall dann $Weiterleitung = Kontaktformular.php

Am einfachsten schaust Du Dir mal den Generator an und machst ein neues Formular nach Deinen Wünschen

Re: Skript (Kontaktformular) einbauen auf Testseite

Verfasst: Do 21. Nov 2024, 21:12
von Volker
Alternativ hier der Code mit Vorname:

Bitte Deine Emailadresse noch einfügen !!!

Code: Alles auswählen

<?php
/*
   Aktion: Formulardaten als E-Mail versenden.
   Formular - PHP 5.4+, Zeichenkodierung: UTF-8

   Erstellt mit dem Formular Generator (21.11.2024) - 
   https://www.mobirise-tutorials.com/Formular-Generator/

   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 = "Kontaktformular.php"; // Relativer Pfad, ausgehend vom Formular.

$vorame = isset($_POST["vorame"]) ? htmlspecialchars(trim($_POST["vorame"])) : ""; // Vorame
$name = isset($_POST["name"]) ? htmlspecialchars(trim($_POST["name"])) : ""; // Name
$email = isset($_POST["email"]) ? htmlspecialchars(trim($_POST["email"])) : ""; // E-Mail
$betreff = isset($_POST["betreff"]) ? htmlspecialchars(trim($_POST["betreff"])) : ""; // Betreff
$nachricht = isset($_POST["nachricht"]) ? htmlspecialchars(trim($_POST["nachricht"])) : ""; // Nachricht
$KopieCk = isset($_POST["Kopie"]) ? " checked='checked'" : null; // E-Mail Kopie

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["vorame"=>"", "name"=>"", "email"=>"", "betreff"=>"", "nachricht"=>"", 
 "sicherheit"=>""];
if (isset($_POST["submit"])) {
 $Fehler["vorame"] = strlen($_POST["vorame"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["name"] = strlen($_POST["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["email"] = strlen($_POST["email"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $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 . " &#43; &#" . (48 + $Z2) . ";";
$Schutz = md5($Z1 + $Z2);

// Formular erstellen
$Formular = "
<form action='" . $_SERVER["SCRIPT_NAME"] . "' method='post'>

<p>
 <label> Vorame:
<span class='pflichtfeld'>&#10034; " . $Fehler["vorame"] . "</span><br>
  <input type='text' name='vorame' value='" . $vorame . "' size='35' required='required' tabindex='1'>
 </label>
</p>

<p>
 <label> Name:
<span class='pflichtfeld'>&#10034; " . $Fehler["name"] . "</span><br>
  <input type='text' name='name' value='" . $name . "' size='35' required='required' tabindex='2'>
 </label>
</p>

<p>
 <label> E-Mail:
<span class='pflichtfeld'>&#10034; " . $Fehler["email"] . "</span><br>
  <input type='text' name='email' value='" . $email . "' size='35' required='required' tabindex='3'>
 </label>
</p>

<p>
 <label> Betreff:
<span class='pflichtfeld'>&#10034; " . $Fehler["betreff"] . "</span><br>
  <input type='text' name='betreff' value='" . $betreff . "' size='35' required='required' tabindex='4'>
 </label>
</p>

<p>
 <label> Nachricht:
 <span class='pflichtfeld'>&#10034; " . $Fehler["nachricht"] . "</span><br>
 <textarea name='nachricht' cols='40' rows='8' required='required' tabindex='5'>" . $nachricht . "</textarea>
 </label>
</p>

<p>
 <label> 
 <input type='checkbox' name='Kopie'" . $KopieCk . ">
 Eine Kopie dieser Nachricht an meine E-Mail Adresse
 </label>
</p>

<p>
 <label> Sicherheitsabfrage: 
 <span class='pflichtfeld'>&#10034; " . $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='submit' value='Formular absenden' tabindex='6'>
</p>

<p>
 <small>Bitte alle mit <span class='pflichtfeld'>&#10034;</span>
 markierten Felder ausfüllen.</small>
</p>

</form>
";

// 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
  // Eine beim Provider registrierte E-Mail Adresse verwenden!
  $Mailto = "Deine@Email.de";

  // Inhalt der E-Mail setzen
  $Text = "   Gesendet am: $Datum Uhr
   Vorame: $vorame
   Name: $name
   E-Mail: $email
   Betreff: $betreff
   Nachricht: $nachricht
  ";

  // E-Mail versenden
  mb_language("de");
  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") .
   "<" . $Mailto . ">" . "\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>";
  }

  // E-Mail Kopie versenden (Vorschlag) - Bitte anpassen!

  if (isset($_POST["Kopie"])) {

   // Diese Nachricht wird an die E-Mail-Adresse des Besuchers gesendet.

   // Name/Signatur
   $Signatur = "";

   // Betreff
   $Betreff = "Kopie einer Nachricht";

   // Inhalt der E-Mail setzen
   $Text = "   Vielen Dank für Ihren Besuch bei ...
   Wir haben folgende Nachricht erhalten:

   Vorame: $vorame
   Name: $name
   E-Mail: $email
   Betreff: $betreff
   Nachricht: $nachricht

   Mit freundlichen Grüßen
    $Signatur  
   ";

   // E-Mail Kopie versenden
   mb_language("de");
   mb_internal_encoding("UTF-8");
   $Betreff = mb_encode_mimeheader($Betreff, "UTF-8", "Q");
   $Kopfzeile = "MIME-Version: 1.0;\nFrom: " . mb_encode_mimeheader($Signatur, "UTF-8", "Q") .
    "<" . $Mailto . ">" . "\nContent-Type: text/plain; Charset=UTF-8;\n";
   if (mail($email, $Betreff, $Text, $Kopfzeile)) {
    echo "<p>Sie erhalten eine Kopie der Nachricht an Ihre E-Mail-Adresse.</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;
}
?>

Re: Skript (Kontaktformular) einbauen auf Testseite

Verfasst: Do 21. Nov 2024, 21:24
von Dieter53
Vielen Dank für die Geduld und die Hilfe.
Das werde ich morgen versuchen umzusetzen.
Für heute ist Schluss.
Gruß
Dieter53

Re: Skript (Kontaktformular) einbauen auf Testseite

Verfasst: Fr 22. Nov 2024, 04:41
von Tommy Herrmann
Moin Dieter,

also - es wäre natürlich richtiger gewesen, wenn Du Dein Formular nicht von meiner Tutorial-Seite kopierst, sondern es direkt am "Formular-Generator" dann auch selbst und für Deine Zwecke passend erstellst.

Genau diesen PHP-Code, den Du von Meiner Seite kopiert hast, erhältst Du ja entsprechend angepasst dann auf der dritten (letzten) Seite vom Formular-Generator und kannst diesen dort downloaden oder auch kopieren.

Auf jeden Falls solltest Du das mal ausprobieren und üben.

Klicke auf den blauen Button, um den Formular-Generator zu starten:

https://www.mobirise-tutorials.com/Form ... -Generator

Da kann man sonst super schnell einen Fehler machen, wenn man das nachträglich anpassen will.

Im Übrigen speichert der Generator Deine Einstellungen als Cookies ab, sodass Du beim nächsten Besuch vom "Formular-Generator" diese Einstellungen wieder vorfindest, solange Du die Cookies an Deinem Computer im Browser nicht löscht und auch noch nicht zuviel Zeit (mehrere Tage) vergangen sind.

Achte darauf wichtige Felder zu Pflichtfeldern zu machen - Häkchen bei "Pflichtfeld" setzen - das sollten zumindest die Felder "Name" und die "E-Mail Adresse" sowie die "Nachricht" sein.

Gucke Dir auch im Screenshot (unten) mal die von mir verwendeten Optionen an, also was ich da so angehakt habe. Das kann wichtig sein, wie z.B. die Verwendung von "HTML5" und "Bootstrap", damit das nachher auch am Handy gut angezeigt wird. Im Moment ist Dein Formular am Handy nämlich zu breit.


Formular-Generator Optionen.jpg


"Bootstrap" ist ein sogenanntes Framework, also eine Sammlung von u.a. bereits vorgefertigten Style-Anweisungen (CSS), die von Mobirise automatisch verwendet werden, denn Mobirise baut auf "Bootstrap" auf. Dann passt das auch gleich automatisch, denn wenn Du "Bootstrap" am Formular-Generator anhakst, dann wird die Bootstrap-Class:

class='form-control'

mit an die Eingabefelder geschrieben, sodass sich diese dann besser an Mobirise anpassen und auch responsive für jedes Display eingestellt werden.