Kontaktformular

PHP, CSS und JavaScript lernen. Anwendungen für Webseiten
Jörg
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 20
Registriert: Mo 3. Okt 2022, 15:12
Wohnort: Calonge, Spanien
Kontaktdaten:

Kontaktformular

Ungelesener Beitrag von Jörg »

Hallo, ich habe über das Tutorial "Kontaktformular von Werner Zenk" ein Formular gebaut.
Dies funktioniert auch sehr gut.
Jetzt wollte ich ein neues bauen, die wird aber partu nicht abgesendet.
So habe ich das funktionierende (erste) kopiert und kleine Veränderungen im Code vorgenommen.
z.B
$Text = " Vielen Dank für Ihre Anfrage.
Wir haben ihre Anfrage erhalten und werden schnellstmöglich bei Ihnen melden.
Bitte haben Sie Verständniss, dass dies bis zu 48h dauern kann. Vielen Dank für Ihre Geduld.
Telefonische Beratung & Buchung 0681-303200 MO - FR 9:00 - 18:00 Uhr


komischerweise kommt aber genau das erste Formular u. Kopie bei mir an.
Ich weiß nicht weiter, was kann das sein?

Danke und viele Grüße
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Tommy Herrmann »

Moin Jörg,

... also mit den Infos, die Du uns bisher gegeben hast, ist es mir nicht möglich etwas zu sagen.

Wie änderst Du denn diese Skripte? Achtest Du darauf, dass diese in der Codierung "UTF-8" auch erhalten bleiben. Das geht nur mit einem vernünftigen Editor, wie z.B. dem neusten Windows 11 "Notepad" oder auch einem Editor wie "Notepad++"

Welches Tutorial hast Du verwendet und welchen "Formular Generator". War das von meiner Seite?

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

Sonst kopiere doch mal das gesamte Skript hier ins Forum und mache Deine E-Mail unkenntlich.

Zur Not kann dann auch unser Werner mal hier gucken. Ich verschiebe Deinen Beitrag auch nach:

"Werner Zenk - Anwendungen und Skripte"

Ich persönlich bin gerade etwas im Stress, denn das Türschloss zu meinem Atelier-Gebäude (mit mehreren Mietern) ist soeben kaputt gegangen. Es muss gleich ein neues eingebaut werden und ich brauche 12 Schlüssel. Kann sein, dass ich erst wieder morgen antworten kann.
Jörg
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 20
Registriert: Mo 3. Okt 2022, 15:12
Wohnort: Calonge, Spanien
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Jörg »

Hallo,
also erst mal vielen Dank für deine Antwort und viel Erfolg mit deinen Türen.

Ja, die UTF-8 Codierung bleibt erhalten.

Der Generator war von der Seite von Werner, ich habe einfach ein ganz normales Formular gestaltet, das nicht abgesendet wird. (natürlich habe ich meine E-Mail eingesetzt).

Code: Alles auswählen

<!DOCTYPE html>
<html lang="de">
 <head>
  <meta charset="UTF-8">
  <title></title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <style>
  body, textarea {
   font-family: Verdana, Sans-Serif;
   font-size: 1rem;
  }

  span.pflichtfeld {
   font-size: 0.90rem;
   color: Red;
  }

  span.hilfetext {
   font-family: Arial, Tahoma, Sans-Serif;
   font-size: 0.80rem;
   font-style: Oblique;
   color: #009500;
  }


  /* Design: Blue Angel */
  input[type="text"],
  input[type="password"],
  input[type="search"],
  input[type="number"],
  input[type="email"],
  input[type="date"],
  input[type="time"],
  input[type="checkbox"],
  input[type="submit"],
  input[type="reset"],
  button[type="button"],
  button[type="submit"],
  textarea,
  select {
   border: Solid 1px #9A9A9A;
   font-family: Verdana, Arial, Sans-Serif;
   font-size: 0.95rem;
   transition: box-shadow 0.3s;
  }

  input[type="text"]:focus,
  input[type="password"]:focus,
  input[type="search"]:focus,
  input[type="number"]:focus,
  input[type="email"]:focus,
  input[type="date"]:focus,
  input[type="time"]:focus,
  input[type="submit"]:focus,
  input[type="reset"]:focus,
  input[type="checkbox"]:focus,
  button[type="button"]:focus,
  button[type="submit"]:focus,
  textarea:focus,
  select:focus {
   border:0; outline:0; /* Chromium */
   border: Solid 1px rgb(34,132,230);
   box-shadow: 0px 0px 3px 0px rgb(34,132,230);
  }

  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  button[type="button"],
  button[type="reset"] {
   border: Solid 1px #9A9A9A;
   background-color: #E1E1E1;
   font-size: 0.95rem;
   transition: background-color 0.4s;
  }

  input[type="button"]:hover,
  input[type="submit"]:hover,
  input[type="reset"]:hover,
  button[type="button"]:hover,
  button[type="reset"]:hover {
   border: Solid 1px #0078D7;
   background-color: #E5F1FB;
  }

  input[type="checkbox"]:checked + label,
  input[type="radio"]:checked + label {
   color: rgb(34,132,230);
  }

  label:hover {
   color: rgb(34,132,230);
  }

  option:nth-child(even) {
   background-color: #E5F1FB;
  }
  </style>

 </head>
<body>

<?php
/*
   Aktion: Formulardaten als E-Mail versenden.
   Formular - PHP 5.4+, Zeichenkodierung: UTF-8
   Siehe: https://werner-zenk.de/html/schriftzeichen_richtig_darstellen.php

   Erstellt mit dem Formular Generator (18.12.2023) - 
   https://werner-zenk.de/tools/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)

// Datei einbinden nach dem absenden des Formulars
// Relativer Pfad, ausgehend vom Formular:
$Include = "danke.htm";
// Wenn die E-Mail nicht versendet werden konnte:
$IncludeError = "fehler.htm";

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

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["name"=>"", "email"=>"", "betreff"=>"", "nachricht"=>"", "sicherheit"=>""];
if (isset($_GET["submit"])) {
 $Fehler["name"] = strlen($_GET["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["email"] = filter_var($_GET["email"], FILTER_VALIDATE_EMAIL) === false ? " Geben Sie eine gültige E-Mail-Adresse ein!" : "";
 $Fehler["betreff"] = strlen($_GET["betreff"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["nachricht"] = strlen($_GET["nachricht"]) < 11 ? " Bitte füllen Sie dieses Feld aus (min. 11 Zeichen)!" : "";
 $Fehler["sicherheit"] = (md5($_GET["zip"]) != $_GET["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"] . "' autocomplete='off' method='get'>

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

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

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

<p>
 <label> Nachricht:
 <span class='pflichtfeld'>&#10034; " . $Fehler["nachricht"] . "</span><br>
 <textarea name='nachricht' cols='40' rows='8' spellcheck='false' required='required' tabindex='4'>" . $nachricht . "</textarea>
 </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='5'>
</p>

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

</form>
";

// Formular abgesendet
if (isset($_GET["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
  // Hier muss beim Provider eine bekannte E-Mail-Adresse eingetragen sein, weil "externe" E-Mail-Adressen vom
  // Provider gesperrt werden und dies zur Ablehnung der Versendung der E-Mail durch den Provider führt.
  $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_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)) {

   // Datei einbinden
   include $Include;
  }
  else {

   // Fehler-Datei einbinden
   include $IncludeError;
  }

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

  // Diese Nachricht wird automatisch 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:

  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>";
  }
 }
 else {

  // Formular und Benutzer-Eingabefehler ausgeben
  echo "<p><span class='pflichtfeld'><strong>Eingabefehler, Bitte korrigieren</strong></span></p>";
  echo $Formular;
 }
}
else {

 // Formular ausgeben
 echo $Formular;
}
?>

</body>
</html> 
-------------------------------------------------------------------------
Dieses Modifizierte Script das ich vor längerem generiert habe funktioniert. (Ich nenne es mal Skript 2)

Code: Alles auswählen

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

   Erstellt mit dem Formular Generator (02.10.2022) - 
   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(0); // (0/1)

// Datei einbinden nach dem absenden des Formulars
// Relativer Pfad zur Datei:
$Include = "http://www.wandern.es/common/onlinerechner/danke.html";


// Wenn die E-Mail nicht versendet werden konnte:
$IncludeError = "./fehler.html";

$name = isset($_GET["name"]) ? strip_tags(trim($_GET["name"])) : ""; // Name
$vorame = isset($_GET["vorame"]) ? strip_tags(trim($_GET["vorame"])) : ""; // Vorname
$strasse = isset($_GET["strasse"]) ? strip_tags(trim($_GET["strasse"])) : ""; // Straße
$ort = isset($_GET["ort"]) ? strip_tags(trim($_GET["ort"])) : ""; // Ort
$telefon = isset($_GET["telefon"]) ? strip_tags(trim($_GET["telefon"])) : ""; // Telefon
$mobilnr = isset($_GET["mobilnr"]) ? strip_tags(trim($_GET["mobilnr"])) : ""; // Mobil-Nr
$email = isset($_GET["email"]) ? strip_tags(trim($_GET["email"])) : ""; // E-Mail
$nachricht = isset($_GET["nachricht"]) ? strip_tags(trim($_GET["nachricht"])) : ""; // Nachricht
$hin = isset($_GET["hin"]) ? strip_tags(trim($_GET["hin"])) : ""; // Abfahrt Datum
$zur = isset($_GET["zur"]) ? strip_tags(trim($_GET["zur"])) : ""; // Rückkunft Datum
$typ = isset($_GET["typ"]) ? strip_tags(trim($_GET["typ"])) : ""; // Ferienwohnung Typ
$erw = isset($_GET["erw"]) ? strip_tags(trim($_GET["erw"])) : ""; // Anzahl Erwachsene
$kin = isset($_GET["kin"]) ? strip_tags(trim($_GET["kin"])) : ""; // Anzahl Kinder unter 15
$preis_erw = isset($_GET["preis_erw"]) ? strip_tags(trim($_GET["preis_erw"])) : ""; // Reisepreis Erwachsene
$preis_kin = isset($_GET["preis_kin"]) ? strip_tags(trim($_GET["preis_kin"])) : ""; // Reisepreis Kinder
$gp = isset($_GET["gp"]) ? strip_tags(trim($_GET["gp"])) : ""; // Gesamt Preis
$KopieCk = isset($_GET["Kopie"]) ? " checked='checked'" : null; // E-Mail Kopie

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["name"=>"", "sicherheit"=>""];
if (isset($_GET["submit"])) {
  $Fehler["name"] = strlen($_GET["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
  $Fehler["name"] = strlen($_GET["email"]) < 1 ? " Bitte geben Sie eine gültige E-Mail Adresse an!" : "";
  $Fehler["sicherheit"] = (md5($_GET["zip"]) != $_GET["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 = "
<div class='container'>
  <form action='http://www.wandern.es/common/onlinerechner/anfrage_buchung.php' method='get'>
    <div class='form-group'>
      <label for='name'>Name <span class='pflichtfeld'>&#10034; " . $Fehler["name"] . "</span></label>
      <input type='text' class='form-control' id='name' name='name' value='" . $name . "'>
    </div>
    <div class='form-group'>
      <label for='vorame'>Vorname</label>
      <input type='text' class='form-control' id='vorame' name='vorame' value='" . $vorame . "'>
    </div>
    <div class='form-group'>
      <label for='strasse'>Straße</label>
      <input type='text' class='form-control' id='strasse' name='strasse' value='" . $strasse . "'>
    </div>
    <div class='form-group'>
      <label for='ort'>Ort</label>
      <input type='text' class='form-control' id='ort' name='ort' value='" . $ort . "'>
    </div>
    <div class='form-group'>
      <label for='telefon'>Telefon</label>
      <input type='text' class='form-control' id='telefon' name='telefon' value='" . $telefon . "'>
    </div>
    <div class='form-group'>
      <label for='mobilnr'>Mobil-Nr</label>
      <input type='text' class='form-control' id='mobilnr' name='mobilnr' value='" . $mobilnr . "'>
    </div>
    <div class='form-group'>
      <label for='email'>E-Mail <span class='pflichtfeld'>&#10034; " . $Fehler["email"] . "</span></label>
      <input type='text' class='form-control' id='email' name='email' value='" . $email . "'>
    </div>
    <div class='form-group'>
      <label for='nachricht'>Nachricht</label>
      <input type='text' class='form-control' id='nachricht' name='nachricht' value='" . $nachricht . "'>
    </div>
    <div class='form-group'>
      <label for='hin'>Abfahrt Datum</label>
      <input type='text' class='form-control' id='hin' name='hin' value='" . $hin . "' readonly>
    </div>
    <div class='form-group'>
      <label for='zur'>Rückkunft Datum</label>
      <input type='text' class='form-control' id='zur' name='zur' value='" . $zur . "' readonly>
    </div>
    <div class='form-group'>
      <label for='typ'>Ferienwohnung Typ</label>
      <input type='text' class='form-control' id='typ' name='typ' value='" . $typ . "' readonly>
    </div>
    <div class='form-group'>
      <label for='erw'>Anzahl Erwachsene</label>
      <input type='text' class='form-control' id='erw' name='erw' value='" . $erw . "' readonly>
    </div>
    <div class='form-group'>
      <label for='kin'>Anzahl Kinder unter 15</label>
      <input type='text' class='form-control' id='kin' name='kin' value='" . $kin . "' readonly>
    </div>
    <div class='form-group'>
      <label for='preis_erw'>Reisepreis Erwachsene</label>
      <input type='text' class='form-control' id='preis_erw' name='preis_erw' value='" . $preis_erw . "' readonly>
    </div>
    <div class='form-group'>
      <label for='preis_kin'>Reisepreis Kinder</label>
      <input type='text' class='form-control' id='preis_kin' name='preis_kin' value='" . $preis_kin . "' readonly>
    </div>
    <div class='form-group'>
      <label for='gp'>Gesamt Preis</label>
      <input type='text' class='form-control' id='gp' name='gp' value='" . $gp . "' readonly>
    </div>
    <div class='form-group'>
      <label for='zip'>Sicherheitsabfrage<span class='pflichtfeld'>&#10034; " . $Fehler["sicherheit"] . "</span></label>
      <em>" . $Spam . "</em> =
      <input type='text' class='form-control' id='zip' name='zip' autocomplete='off'>
    </div>
    <input type='hidden' name='zip2' value='" . $Schutz . "'>
    <button type='submit' name='submit' class='btn btn-primary'>Formular absenden</button>
    <p class='small'>Bitte alle mit <span class='pflichtfeld'>&#10034;</span> markierten Felder ausfüllen.</p>
  </form>
</div>
";

// Formular abgesendet
if (isset($_GET["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 = "xxx";
  $betreff = "Anfrage-Formular-Onlinerechner"; // Betreff

  // Inhalt der E-Mail setzen
  $Text = "   Gesendet am: $Datum Uhr
   Ein Besucher der Seite hat eine Anfrage über den Onlinerechner gestellt, mit folgendem Inhalt:
   Name: $name
   Vorname: $vorame
   Straße: $strasse
   Ort: $ort
   Telefon: $telefon
   Mobil-Nr: $mobilnr
   E-Mail: $email
   Nachricht: $nachricht
   Abfahrt Datum: $hin
   Rückkunft Datum: $zur
   Ferienwohnung Typ: $typ
   Anzahl Erwachsene: $erw
   Anzahl Kinder unter 15: $kin
   Reisepreis Erwachsene: $preis_erw
   Reisepreis Kinder: $preis_kin
   Gesamt Preis: $gp
  ";

  // 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 "Vielen Dank! Die Anfrage wurde erfolgreich versendet.
   <br> Sie erhalten eine Kopie der Anfrage
   <br> Bitte schauen Sie auch in Ihren Spam Ordner.";

   // Datei einbinden
   include $Include;
  }
  else {

   // Fehler-Datei einbinden
   include $IncludeError;
  }

  // E-Mail Kopie versenden (Vorschlag) - Bitte anpassen!
  // Diese Nachricht wird automatisch an die E-Mail-Adresse des Besuchers gesendet.

  // Name/Signatur
  $Signatur = "Mit den besten Grüßen, Ihr Team";

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

  // Inhalt der E-Mail setzen
  $Text = "   Vielen Dank für Ihre Anfrage.
  Wir haben ihre Anfrage erhalten und werden schnellstmöglich die Verfügbarkeit prüfen.
  Bitte haben Sie Verständnis, dass dies bis zu 48h dauern kann. Vielen Dank für Ihre Geduld.
  Telefonische Beratung & Buchung  MO - FR 9:00 - 18:00 Uhr

  Name: $name
  Vorname: $vorame
  Straße: $strasse
  Ort: $ort
  Telefon: $telefon
  Mobil-Nr: $mobilnr
  E-Mail: $email
  Nachricht: $nachricht
  Abfahrt Datum: $abfahrt_datum
  Rückkunft Datum: $rueckkunft_datum
  Ferienwohnung Typ: $ferienwohnung_typ
  Anzahl Erwachsene: $anzahl_erwachsene
  Anzahl Kinder unter 15: $anzahl_kinder_unter_15
  Reisepreis Erwachsene: $reisepreis_erwachsene
  Reisepreis Kinder: $reisepreis_kinder
  Gesamt Preis: $gesamt_preis

   
    $Signatur  
   ";

  // E-Mail Kopie versenden

  $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 " ";
  }
 }
 else {

  // Formular und Benutzer-Eingabefehler ausgeben
  echo $Formular;
 }
}
else {

  // Formular ausgeben
  echo $Formular;
}
?>
---------------------------------------------------------------------------------------------------------
[b]Von Skript 2 habe ich eine Kopie mit verschiedenen Änderungen gemacht.(also Skript 3), funktioniert zwar mit dem Absenden, die ausgefüllten Formularfelder werden auch übermittelt aber die Änderungen im $Text werden nicht übernommen und kommen wie in Skript 1 an. Und die gelöschten [/b]
[i]Abfahrt Datum: $abfahrt_datum
  Rückkunft Datum: $rueckkunft_datum
  Ferienwohnung Typ: $ferienwohnung_typ
  Anzahl Erwachsene: $anzahl_erwachsene
  Anzahl Kinder unter 15: $anzahl_kinder_unter_15
  Reisepreis Erwachsene: $reisepreis_erwachsene
  Reisepreis Kinder: $reisepreis_kinder
  Gesamt Preis: $gesamt_preis
 Abfahrt Datum: $hin
   Rückkunft Datum: $zur
   Ferienwohnung Typ: $typ
   Anzahl Erwachsene: $erw
   Anzahl Kinder unter 15: $kin
   Reisepreis Erwachsene: $preis_erw
   Reisepreis Kinder: $preis_kin
   Gesamt Preis: $gp
[/i]
[b]werden weiterhin übermittelt. [/b]
[b]Hier Skript 3 (Kopie von Skript 2) an den "head Bereich" habe ich jeweils gedacht. Wie gesagt, dieses Formular kommt genau so an wie Skript 2. [/b]
<?php
/*
   Aktion: Formulardaten als E-Mail versenden.
   Formular - PHP 5.4+, Zeichenkodierung: UTF-8

   Erstellt mit dem Formular Generator (02.10.2022) - 
   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(0); // (0/1)

// Datei einbinden nach dem absenden des Formulars
// Relativer Pfad zur Datei:
$Include = "";


// Wenn die E-Mail nicht versendet werden konnte:
$IncludeError = "./fehler.html";

$name = isset($_GET["name"]) ? strip_tags(trim($_GET["name"])) : ""; // Name
$vorame = isset($_GET["vorame"]) ? strip_tags(trim($_GET["vorame"])) : ""; // Vorname
$strasse = isset($_GET["strasse"]) ? strip_tags(trim($_GET["strasse"])) : ""; // Straße
$ort = isset($_GET["ort"]) ? strip_tags(trim($_GET["ort"])) : ""; // Ort
$telefon = isset($_GET["telefon"]) ? strip_tags(trim($_GET["telefon"])) : ""; // Telefon
$mobilnr = isset($_GET["mobilnr"]) ? strip_tags(trim($_GET["mobilnr"])) : ""; // Mobil-Nr
$email = isset($_GET["email"]) ? strip_tags(trim($_GET["email"])) : ""; // E-Mail
$nachricht = isset($_GET["nachricht"]) ? strip_tags(trim($_GET["nachricht"])) : ""; // Nachricht
$KopieCk = isset($_GET["Kopie"]) ? " checked='checked'" : null; // E-Mail Kopie

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["name"=>"", "sicherheit"=>""];
if (isset($_GET["submit"])) {
  $Fehler["name"] = strlen($_GET["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
  $Fehler["name"] = strlen($_GET["email"]) < 1 ? " Bitte geben Sie eine gültige E-Mail Adresse an!" : "";
  $Fehler["sicherheit"] = (md5($_GET["zip"]) != $_GET["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 = "
<div class='container'>
    <div class='form-group'>
<form action='http://www.wandern.es/common/onlinerechner/anfrage_buchung.php' method='get'>
      <label for='name'>Name <span class='pflichtfeld'>&#10034; " . $Fehler["name"] . "</span></label>
      <input type='text' class='form-control' id='name' name='name' value='" . $name . "'>
    </div>
    <div class='form-group'>
      <label for='vorame'>Vorname</label>
      <input type='text' class='form-control' id='vorame' name='vorame' value='" . $vorame . "'>
    </div>
    <div class='form-group'>
      <label for='strasse'>Straße</label>
      <input type='text' class='form-control' id='strasse' name='strasse' value='" . $strasse . "'>
    </div>
    <div class='form-group'>
      <label for='ort'>Ort</label>
      <input type='text' class='form-control' id='ort' name='ort' value='" . $ort . "'>
    </div>
    <div class='form-group'>
      <label for='telefon'>Telefon</label>
      <input type='text' class='form-control' id='telefon' name='telefon' value='" . $telefon . "'>
    </div>
    <div class='form-group'>
      <label for='mobilnr'>Mobil-Nr</label>
      <input type='text' class='form-control' id='mobilnr' name='mobilnr' value='" . $mobilnr . "'>
    </div>
    <div class='form-group'>
      <label for='email'>E-Mail <span class='pflichtfeld'>&#10034; " . $Fehler["email"] . "</span></label>
      <input type='text' class='form-control' id='email' name='email' value='" . $email . "'>
    </div>
    <div class='form-group'>
      <label for='nachricht'>Nachricht</label>
      <input type='text' class='form-control' id='nachricht' name='nachricht' value='" . $nachricht . "'>
    </div>
      <div class='form-group'>
      <label for='zip'>Sicherheitsabfrage<span class='pflichtfeld'>&#10034; " . $Fehler["sicherheit"] . "</span></label>
      <em>" . $Spam . "</em> =
      <input type='text' class='form-control' id='zip' name='zip' autocomplete='off'>
    </div>
    <input type='hidden' name='zip2' value='" . $Schutz . "'>
    <button type='submit' name='submit' class='btn btn-primary'>Formular absenden</button>
    <p class='small'>Bitte alle mit <span class='pflichtfeld'>&#10034;</span> markierten Felder ausfüllen.</p>
  </form>
</div>
";

// Formular abgesendet
if (isset($_GET["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 = "jg@xxx.es";
  $betreff = "Anfrage-Formular-Onlinerechner"; // Betreff

  // Inhalt der E-Mail setzen
  $Text = "   Gesendet am: $Datum Uhr
   Ein Besucher der Seite xy.com hat eine Anfrage über den Onlinerechner gestellt, mit folgendem Inhalt:
   Name: $name
   Vorname: $vorame
   Straße: $strasse
   Ort: $ort
   Telefon: $telefon
   Mobil-Nr: $mobilnr
   E-Mail: $email
   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 "Vielen Dank! Die Anfrage wurde erfolgreich versendet.
   <br> Sie erhalten eine Kopie der Anfrage
   <br> Bitte schauen Sie auch in Ihren Spam Ordner.";

   // Datei einbinden
   include $Include;
  }
  else {

   // Fehler-Datei einbinden
   include $IncludeError;
  }

  // E-Mail Kopie versenden (Vorschlag) - Bitte anpassen!
  // Diese Nachricht wird automatisch an die E-Mail-Adresse des Besuchers gesendet.

  // Name/Signatur
  $Signatur = "Mit den besten Grüßen, Ihr Team";

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

  // Inhalt der E-Mail setzen
  $Text = "   Vielen Dank für Ihre Anfrage.
  Wir haben ihre Anfrage erhalten und werden schnellstmöglich bei Ihnen melden.
  Bitte haben Sie Verständniss, dass dies bis zu 48h dauern kann. Vielen Dank für Ihre Geduld.
  Telefonische Beratung & Buchung  MO - FR 9:00 - 18:00 Uhr

  Name: $name
  Vorname: $vorame
  Straße: $strasse
  Ort: $ort
  Telefon: $telefon
  Mobil-Nr: $mobilnr
  E-Mail: $email
  Nachricht: $nachricht
  
    $Signatur  
   ";

  // E-Mail Kopie versenden

  $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 " ";
  }
 }
 else {

  // Formular und Benutzer-Eingabefehler ausgeben
  echo $Formular;
 }
}
else {

  // Formular ausgeben
  echo $Formular;
}
?>

Ich hoffe es ist jetzt etwas verständlicher.

Vielen Dank und beste Grüße
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Tommy Herrmann »

auf die Schnelle sehe ich gerade nichts - gucke aber morgen nochmals genauer.

Du darfst aber nur den PHP-Teil in Mobirise einbauen (so wie beim unteren, zweiten Formular) , nicht etwas die gesamte HTML-Seite.

Also nur diesen Teil vom oberen Skript:

Code: Alles auswählen

<?php
/*
   Aktion: Formulardaten als E-Mail versenden.
   Formular - PHP 5.4+, Zeichenkodierung: UTF-8
   Siehe: https://werner-zenk.de/html/schriftzeichen_richtig_darstellen.php

   Erstellt mit dem Formular Generator (18.12.2023) - 
   https://werner-zenk.de/tools/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)

// Datei einbinden nach dem absenden des Formulars
// Relativer Pfad, ausgehend vom Formular:
$Include = "danke.htm";
// Wenn die E-Mail nicht versendet werden konnte:
$IncludeError = "fehler.htm";

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

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["name"=>"", "email"=>"", "betreff"=>"", "nachricht"=>"", "sicherheit"=>""];
if (isset($_GET["submit"])) {
 $Fehler["name"] = strlen($_GET["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["email"] = filter_var($_GET["email"], FILTER_VALIDATE_EMAIL) === false ? " Geben Sie eine gültige E-Mail-Adresse ein!" : "";
 $Fehler["betreff"] = strlen($_GET["betreff"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["nachricht"] = strlen($_GET["nachricht"]) < 11 ? " Bitte füllen Sie dieses Feld aus (min. 11 Zeichen)!" : "";
 $Fehler["sicherheit"] = (md5($_GET["zip"]) != $_GET["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"] . "' autocomplete='off' method='get'>

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

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

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

<p>
 <label> Nachricht:
 <span class='pflichtfeld'>&#10034; " . $Fehler["nachricht"] . "</span><br>
 <textarea name='nachricht' cols='40' rows='8' spellcheck='false' required='required' tabindex='4'>" . $nachricht . "</textarea>
 </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='5'>
</p>

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

</form>
";

// Formular abgesendet
if (isset($_GET["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
  // Hier muss beim Provider eine bekannte E-Mail-Adresse eingetragen sein, weil "externe" E-Mail-Adressen vom
  // Provider gesperrt werden und dies zur Ablehnung der Versendung der E-Mail durch den Provider führt.
  $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_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)) {

   // Datei einbinden
   include $Include;
  }
  else {

   // Fehler-Datei einbinden
   include $IncludeError;
  }

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

  // Diese Nachricht wird automatisch 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:

  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>";
  }
 }
 else {

  // Formular und Benutzer-Eingabefehler ausgeben
  echo "<p><span class='pflichtfeld'><strong>Eingabefehler, Bitte korrigieren</strong></span></p>";
  echo $Formular;
 }
}
else {

 // Formular ausgeben
 echo $Formular;
}
?>
Hast Du das getan?

Siehe dazu auch mein Tutorial:

https://www.mobirise-tutorials.com/Form ... /#Tutorial
Jörg
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 20
Registriert: Mo 3. Okt 2022, 15:12
Wohnort: Calonge, Spanien
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Jörg »

Ja, das habe ich getan.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Tommy Herrmann »

Dann poste bitte hier auch noch einen Link (URL) zu dieser Seite mit dem Formular. Wenn diese nicht online ist, dann publiziere sie in ein Test-Verzeichnis.

Ich gucke dann morgen früh nochmals. Wenn ich nichts finde, werde ich versuchen Werner zu erreichen.
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Werner-Zenk.de »

Im Formular Generator bei den Optionen unbedingt: Übertragungsmethode POST auswählen!


Screenshot 2023-12-18 212317.png
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Tommy Herrmann »

Moin,

danke Werner - jetzt hast Du es schon selbst entdeckt. Danke für Deine Hilfe :tu:

Gibst Du mir auch kurz Nachhilfe - bitte ?

Das vom Jörg oben gepostete (erste) Formular mit der Methode "GET" funktioniert bei mir einwandfrei, ich habe es gerade vollkommen unverändert getestet, wozu ich gestern keine Zeit mehr hatte.

Die Mail an mich sowie auch die Kopie kamen korrekt an.

Hat es denn dann damit zu tun, dass GET durch die URL auf 2.048 Zeichen begrenzt ist und die Methode "POST" dagegen keine Beschränkungen hat - oder womit?

... und Jörg da diesen ellenlangen Text (das alleine sind ja schon 266 Zeichen) eingefügt hat:
Variable Text hat geschrieben:
$Text = " Vielen Dank für Ihre Anfrage.
Wir haben ihre Anfrage erhalten und werden schnellstmöglich bei Ihnen melden.
Bitte haben Sie Verständniss, dass dies bis zu 48h dauern kann. Vielen Dank für Ihre Geduld.
Telefonische Beratung & Buchung 0681-303200 MO - FR 9:00 - 18:00 Uhr ...
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Werner-Zenk.de »

Moin,
wie du geschrieben hast, ist die Länge der Zeichen über GET beschränkt, die Länge ist bei jedem Browser unterschiedlich.
Und das da dann mit GET sämtlicher Inhalt aus dem Formular auch richtig gesendet wird kann ich nicht bestätigen, da es viele unterschiedliche Formularfelder und Funktionen gibt, habe ich diese nicht alle durchgetestet.

Datenschutz-rechtlich ist das eine Katastrophe, sämtliche Daten werden in der Adresszeile des Browsers angezeigt
und können in der Browser-History (oder als Lesezeichen gespeichert) wieder aufgerufen und manipuliert werden.
Da es zudem keine Https-Seiten sind, in denen die Formulare laufen, würde ich mich als Benutzer sehr unwohl fühlen.

Ich weiß, der Formular Generator verführt zum Spielen und man kann da leicht Optionen auswählen, die man nicht ganz versteht, deren Tragweite aber für das Funktionieren des Skripts entscheidend ist.
Grundsätzlich braucht man in den Generator-Optionen nichts einzustellen, die Voreinstellungen genügen damit das Skript läuft.

Nachtrag: GET verwendet man, um auf einer Seite zu navigieren oder in einem Formular für eine Suche, um Daten zu übermitteln und die Ergebnisse der Suche kann man dann in den Lesezeichen für einen späteren Aufruf speichern.
Zuletzt geändert von Werner-Zenk.de am Di 19. Dez 2023, 09:21, insgesamt 1-mal geändert.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Tommy Herrmann »

Hallo Werner,

vielen Dank für diese Erklärung - das sollte man natürlich wissen, bevor man da z.B. "GET" einstellt.

Ich verwende Deinen Generator ja nun schon immer (viele, viele Jahre) - bisher aber immer mit "POST".


@ Jörg,

also - erstelle Deine Formulare nochmals neu mit der Methode "POST" und gut ist :tu:
Jörg
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 20
Registriert: Mo 3. Okt 2022, 15:12
Wohnort: Calonge, Spanien
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Jörg »

Hallo Werner und Thommy, vielen Dank für eure Mühe!

hier nochmals das 3. Skript, das ich von Skript 2 Kopiert und modifiziert habe.
Es kommt auch an, allerdings genau so wie das 2. Script.

Code: Alles auswählen

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

   Erstellt mit dem Formular Generator (02.10.2022) - 
   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(0); // (0/1)

// Datei einbinden nach dem absenden des Formulars
// Relativer Pfad zur Datei:
$Include = "";


// Wenn die E-Mail nicht versendet werden konnte:
$IncludeError = "./fehler.html";

$name = isset($_GET["name"]) ? strip_tags(trim($_GET["name"])) : ""; // Name
$vorame = isset($_GET["vorame"]) ? strip_tags(trim($_GET["vorame"])) : ""; // Vorname
$strasse = isset($_GET["strasse"]) ? strip_tags(trim($_GET["strasse"])) : ""; // Straße
$ort = isset($_GET["ort"]) ? strip_tags(trim($_GET["ort"])) : ""; // Ort
$telefon = isset($_GET["telefon"]) ? strip_tags(trim($_GET["telefon"])) : ""; // Telefon
$mobilnr = isset($_GET["mobilnr"]) ? strip_tags(trim($_GET["mobilnr"])) : ""; // Mobil-Nr
$email = isset($_GET["email"]) ? strip_tags(trim($_GET["email"])) : ""; // E-Mail
$nachricht = isset($_GET["nachricht"]) ? strip_tags(trim($_GET["nachricht"])) : ""; // Nachricht
$KopieCk = isset($_GET["Kopie"]) ? " checked='checked'" : null; // E-Mail Kopie

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["name"=>"", "sicherheit"=>""];
if (isset($_GET["submit"])) {
  $Fehler["name"] = strlen($_GET["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
  $Fehler["name"] = strlen($_GET["email"]) < 1 ? " Bitte geben Sie eine gültige E-Mail Adresse an!" : "";
  $Fehler["sicherheit"] = (md5($_GET["zip"]) != $_GET["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 = "
<div class='container'>
    <div class='form-group'>
<form action='http://www.wandern.es/common/onlinerechner/anfrage_buchung.php' method='get'>
      <label for='name'>Name <span class='pflichtfeld'>&#10034; " . $Fehler["name"] . "</span></label>
      <input type='text' class='form-control' id='name' name='name' value='" . $name . "'>
    </div>
    <div class='form-group'>
      <label for='vorame'>Vorname</label>
      <input type='text' class='form-control' id='vorame' name='vorame' value='" . $vorame . "'>
    </div>
    <div class='form-group'>
      <label for='strasse'>Straße</label>
      <input type='text' class='form-control' id='strasse' name='strasse' value='" . $strasse . "'>
    </div>
    <div class='form-group'>
      <label for='ort'>Ort</label>
      <input type='text' class='form-control' id='ort' name='ort' value='" . $ort . "'>
    </div>
    <div class='form-group'>
      <label for='telefon'>Telefon</label>
      <input type='text' class='form-control' id='telefon' name='telefon' value='" . $telefon . "'>
    </div>
    <div class='form-group'>
      <label for='mobilnr'>Mobil-Nr</label>
      <input type='text' class='form-control' id='mobilnr' name='mobilnr' value='" . $mobilnr . "'>
    </div>
    <div class='form-group'>
      <label for='email'>E-Mail <span class='pflichtfeld'>&#10034; " . $Fehler["email"] . "</span></label>
      <input type='text' class='form-control' id='email' name='email' value='" . $email . "'>
    </div>
    <div class='form-group'>
      <label for='nachricht'>Nachricht</label>
      <input type='text' class='form-control' id='nachricht' name='nachricht' value='" . $nachricht . "'>
    </div>
      <div class='form-group'>
      <label for='zip'>Sicherheitsabfrage<span class='pflichtfeld'>&#10034; " . $Fehler["sicherheit"] . "</span></label>
      <em>" . $Spam . "</em> =
      <input type='text' class='form-control' id='zip' name='zip' autocomplete='off'>
    </div>
    <input type='hidden' name='zip2' value='" . $Schutz . "'>
    <button type='submit' name='submit' class='btn btn-primary'>Formular absenden</button>
    <p class='small'>Bitte alle mit <span class='pflichtfeld'>&#10034;</span> markierten Felder ausfüllen.</p>
  </form>
</div>
";

// Formular abgesendet
if (isset($_GET["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 = "jg@goetten.es";
  $betreff = "Anfrage-Formular-Onlinerechner"; // Betreff

  // Inhalt der E-Mail setzen
  $Text = "   Gesendet am: $Datum Uhr
   Ein Besucher der Seite xy.com hat eine Anfrage über den Onlinerechner gestellt, mit folgendem Inhalt:
   Name: $name
   Vorname: $vorame
   Straße: $strasse
   Ort: $ort
   Telefon: $telefon
   Mobil-Nr: $mobilnr
   E-Mail: $email
   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 "Vielen Dank! Die Anfrage wurde erfolgreich versendet.
   <br> Sie erhalten eine Kopie der Anfrage
   <br> Bitte schauen Sie auch in Ihren Spam Ordner.";

   // Datei einbinden
   include $Include;
  }
  else {

   // Fehler-Datei einbinden
   include $IncludeError;
  }

  // E-Mail Kopie versenden (Vorschlag) - Bitte anpassen!
  // Diese Nachricht wird automatisch an die E-Mail-Adresse des Besuchers gesendet.

  // Name/Signatur
  $Signatur = "Mit den besten Grüßen, Ihr Team";

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

  // Inhalt der E-Mail setzen
  $Text = "   Vielen Dank für Ihre Anfrage.
  Wir haben ihre Anfrage erhalten und werden schnellstmöglich bei Ihnen melden.
 
  Name: $name
  Vorname: $vorame
  Straße: $strasse
  Ort: $ort
  Telefon: $telefon
  Mobil-Nr: $mobilnr
  E-Mail: $email
  Nachricht: $nachricht
  
    $Signatur  
   ";

  // E-Mail Kopie versenden

  $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 " ";
  }
 }
 else {

  // Formular und Benutzer-Eingabefehler ausgeben
  echo $Formular;
 }
}
else {

  // Formular ausgeben
  echo $Formular;
}
?>


so kommt es an, also mit den ganzen Reisedaten (wie in Skript 2), obwohl diese entfernt wurden und ohne die Änderungen des Text in der Kopie für den Absender:

Vielen Dank für Ihre Anfrage.
Wir haben ihre Anfrage erhalten und werden schnellstmöglich die Verfügbarkeit prüfen.
Bitte haben Sie Verständniss, dass dies bis zu 48h dauern kann. Vielen Dank für Ihre Geduld.
Telefonische Beratung & Buchung 0681-xxxMO - FR 9:00 - 18:00 Uhr

Name: Jörg xxx
Vorname:
Straße: Av. xxx
Ort: Castell Platja d'Aro
Telefon: +34xxx
Mobil-Nr:
E-Mail: jg@xxx.es
Nachricht: dadad
Abfahrt Datum:
Rückkunft Datum:
Ferienwohnung Typ:
Anzahl Erwachsene:
Anzahl Kinder unter 15:
Reisepreis Erwachsene:
Reisepreis Kinder:
Gesamt Preis:


Mit den besten Grüßen, Ihr Team von xxx


-------------------------------------------------------------------------------------------
@Thommy: http://wandern.es/?ngp=w7e7c120e1c0957f9f86521467883204
dies ist eine Testseite.
@ Werner: http://wandern.es/?ngp=w7e7c131016197ba8786521467883204
dies ist auch eine Testseite mit neu erstelltem Formular mit "Post"

Datenschutz-rechtlich ist das eine Katastrophe, sämtliche Daten werden in der Adresszeile des Browsers angezeigt
und können in der Browser-History (oder als Lesezeichen gespeichert) wieder aufgerufen und manipuliert werden.
Da es zudem keine Https-Seiten sind, in denen die Formulare laufen, würde ich mich als Benutzer sehr unwohl fühlen.

Dies ist nur eine Testseite und wird bei Fertigstellung auf https gespielt

Nachtrag: GET verwendet man, um auf einer Seite zu navigieren oder in einem Formular für eine Suche, um Daten zu übermitteln und die Ergebnisse der Suche kann man dann in den Lesezeichen für einen späteren Aufruf speichern.
Deswegen GET, da Einträge in das Formular von einer anderen Seite kommen.

@ Thommy:
also - erstelle Deine Formulare nochmals neu mit der Methode "POST" und gut ist
habe ich hier gemacht, es kommt nicht an.
http://wandern.es/?ngp=w7e7c131016197ba8786521467883204

Nochmals vielen Dank euch beiden, viele Grüße Jörg

viele Grüße Jörg
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Tommy Herrmann »

Warum postest Du nun nochmals die mit der Methode "GET" erstellten Formulare?

Das hatte doch Werner gerade erst erklärt.

Vielleicht wird das Formular überhaupt nicht übernommen, da es für die Methode "GET" viel zu groß ist. Ich habe mit "GET" nie bei E-Mail-Formularen gearbeitet. Ich würde den Rat vom Werner berücksichtigen und hier "POST" verwenden.

Setze doch bitte Code in Deinen Beiträgen auch in den dazugehörigen "BBCode" für Code, denn sonst werden solche Beiträge fast unlesbar:

Code: Alles auswählen

[code]hier steht der Code im BBCode-Tag - ohne das Leerzeichen im schließenden Tag[/ code]
BBCode für Code.jpg
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Tommy Herrmann »

Ich weiß im Moment nicht, warum Deine Formulare nicht ankommen. Vielleicht hat Werner eine Idee.

Die Empfänger-E-Mail Adresse muss bei Deinem Anbieter (Provider) auch registriert sein, sonst wird Dein Provider diese nicht durchlassen (Spamschutz)!

Hast Du das Formular auch schon mal über einen anderen Browser versendet, das solltest Du dann auch mal testen.

Ich würde auch mal als erstes Dein Formular so testen, wie es von Werners "Formular Generator" generiert worden ist. Also lediglich die beim Provider registrierte E-Mail Adresse einsetzen und dann - vor dem Einbau in die Webseite - testen. Das hatte ich mit Deinem ersten Formular (ganz oben) getan und das funktionierte (auch mit GET) bei mir einwandfrei. Die E-Mails kamen auch sogleich bei mir an.

Verwendest Du hier das CMS von "TYPO3" oder was ist das - kenne mich damit leider nicht aus. Vielleicht hat das auch alles was mit diesem CMS zu tun. Hast Du dort schon mal nachgefragt?
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Werner-Zenk.de »

Jörg hat geschrieben: Di 19. Dez 2023, 16:36 Hallo Werner und Thommy, vielen Dank für eure Mühe!

hier nochmals das 3. Skript, das ich von Skript 2 Kopiert und modifiziert habe.
Es kommt auch an, allerdings genau so wie das 2. Script.
...
Ändere im 3 Script, mal den Betreff in:

Code: Alles auswählen

$betreff = "Anfrage-Formular-Onlinerechner -FORM3-"; // Betreff
Lade die Datei auf dem Webserver und teste diese.
Schaue in deinem Posteingang nach, da muss dann eine Nachricht (Kopfzeile) mit "Anfrage-Formular-Onlinerechner -FORM3-" erscheinen!
Jörg
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 20
Registriert: Mo 3. Okt 2022, 15:12
Wohnort: Calonge, Spanien
Kontaktdaten:

Re: Kontaktformular

Ungelesener Beitrag von Jörg »

Hallo,
entschuldige, dass ich mich jetzt erst melde.
Erst mal wünsche ich euch ein frohes neues Jahr.
Ich habe die Zeile, wie von dir beschrieben eingefügt.
Das Formular kommt mit dem Betreff "Anfrage-Formular-Onlinerechner" an, also ohne -FORM3-

Viele Grüße
Antworten

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 107 Gäste