Skript (Kontaktformular) einbauen auf Testseite

Allgemeine Fragen
Dieter53
Mitglied (Level 9)
Mitglied (Level 9)
Beiträge: 93
Registriert: Mi 25. Sep 2024, 10:34

Re: Skript (Kontaktformular) einbauen auf Testseite

Ungelesener Beitrag von Dieter53 »

So sieht das jetzt aus bei mir
Vorname.jpg
Aber ganz ehrlich, jetzt weiß ich überhaupt nicht mehr was los.
Gruß
Dieter53
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: Skript (Kontaktformular) einbauen auf Testseite

Ungelesener Beitrag 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
Gruß Volker
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: Skript (Kontaktformular) einbauen auf Testseite

Ungelesener Beitrag 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;
}
?>
Gruß Volker
Dieter53
Mitglied (Level 9)
Mitglied (Level 9)
Beiträge: 93
Registriert: Mi 25. Sep 2024, 10:34

Re: Skript (Kontaktformular) einbauen auf Testseite

Ungelesener Beitrag von Dieter53 »

Vielen Dank für die Geduld und die Hilfe.
Das werde ich morgen versuchen umzusetzen.
Für heute ist Schluss.
Gruß
Dieter53
Gruß
Dieter53
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Skript (Kontaktformular) einbauen auf Testseite

Ungelesener Beitrag 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.
Antworten

Wer ist online?

Mitglieder in diesem Forum: Amazon [Bot], Bing [Bot] und 3 Gäste