Google reCAPTCHA in Kontaktformular einbinden

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Google reCAPTCHA in Kontaktformular einbinden

    Hallo,
    bei einer alten Webseite, die ich noch bis Ende des Jahres betreue, muss ich ein reCaptcha einbauen, damit der Hoster aufgrund von Spam die PHP-Mail-Funktion wieder freigibt. Das ist jetzt (angeblich) auch passiert, da die reCaptcha-Überprüfung selbst funktioniert.

    Edit: Nach Rücksprache des Hosters ist die Funktion definitiv wieder aktiviert: "Die Serveradministratoren haben die PHP-mail()-Funktion wieder aktiviert." Daran kann es also nicht liegen, dass das Formular-Absenden nicht funktioniert.

    Eigentlich bin ich schon zu lange aus dem Thema PHP draußen. Mit etwas Hilfe habe ich es nun hinbekommen. Bis jetzt. Ich komme leider nicht weiter. Vielleicht kann mir jemand von euch weiterhelfen?
    • Die Überprüfung der einzelnen Felder funktioniert augenscheinlich. Zumindest werden etwaige gewollte Fehlermeldungen angezeigt.
    • Wenn man ohne das reCaptcha zu nutzen absenden möchte, werden dennoch keine Fehlermeldungen vom reCaptcha angezeigt. Aber die Seite "ruckelt" dann nur kurz. An der Seite selbst ändert sich sonst nichts.
    • Wenn man das Formular mit genutztem reCaptcha absenden möchte, funktioniert dessen Prüfung, aber beim Absenden passiert auch hier nichts. Wieder nur besagter "Ruckler". Es wird weder die E-Mail aus dem Formular abgesendet, noch wird man auf die "versendet.html" weitergeleitet.


      Anbei das Kontaktformular. Aus Datenschutzgründen habe ich hoffentlich alle entsprechenden Informationen entfernt.
      Aufgrund der begrenzten Zeichenlänger hier erst einmal der PHP-Teil des Formulars:

      PHP Code:
      <?php


      // Angaben anpassen
      $to_email='test@example.com'//Die Zieladresse
      $mail_success='./versendet.html'// Pfad zu einer Bestätigungsseite, wenn die Mail erfolgreich versendet wurde.

      $error=false;



      // Formular-Variablen Deklarierung und Initialisierung
      $plz_error="";
      $vorname_error="";
      $name_error="";
      $telefon_error="";
      $telefax_error="";
      $strasse_error="";
      $ort_error="";
      $email_error="";
      $betreff_error="";
      $nachricht_error="";




      // Hier werden alle Pflichtfelder festgelegt. Diese Felder dürfen nicht leer bleiben.
      $pflicht[]='name';
      $pflicht[]='telefon';
      $pflicht[]='nachricht';

      $absendezeit date('h-i-s, j-m-y');

      if(
      $_POST)
      {
              
      // prüfen, ob eines der Pflichtfelder leer ist
              
      foreach($pflicht AS $key => $result)
              {
                      if(!
      $_POST[$result])
                      {
                              ${
      $pflicht[$key].'_error'}='Bitte ausfüllen';
                              
      $error=true;
                      }
              }

              
      // Prüfung der PLZ
              
      $pattern_plz="/^[0-9]{5}$/";
              if(!
      preg_match($pattern_plz,$_POST['plz']) && $_POST['plz']!='')
              {
                      
      $plz_error='falsches Plz Format';
                      
      $error=true;
              }

              
      // Prüfung der Telefonnummer
              
      $pattern_tel="/^[0-9-()\/+.]*$/";
              if(!
      preg_match($pattern_tel,$_POST['telefon']) && $_POST['telefon']!='')
              {
                      
      $telefon_error='falsches Format';
                      
      $error=true;
              }

               
      // Prüfung der Faxnummer
              
      $pattern_fax="/^[0-9-()\/+.]*$/";
              if(!
      preg_match($pattern_fax,$_POST['telefax']) && $_POST['telefax']!='')
              {
                      
      $telefax_error='&nbsp;&nbsp;&nbsp;&nbsp;falsches Format';
                      
      $error=true;
              }

                       
      // Prüfung recaptchar


          // Prüfung recaptchar
                      
      $captcha=(isset($_POST["captcha"]) ? $_POST['captcha'] : '');
                      
      $secret="MeinGeheimerSchluessel";

                              
      //Recaptcha verification and JSON response decode
                                  
      $verify=json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$captcha), true);
                                  
      $error=!$verify["success"];

        if (isset(
      $response) && $response->success) {
         



              
      // Wenn keine Fehler vorhanden, dann kann die Mail versendet werden
              
      if(!$error)
              {


                     
                     
                      
      $from_name="{$_POST['vorname']} {$_POST['name']}";
                      
      $from_email=($_POST['email']!='') ? $_POST['email'] : $to_email;


                      
      $headers  "X-Sender: $from_name<$from_email>\n";
                      
      $headers .= "X-Mailer: $from_name powered by BWAT\n";
                      
      $headers .= "Return-Path: <$from_email>\n";
                      
      $headers .= "Date: "date('r'). "\n";
                      
      $headers .= "From: $from_email \n";
                      
      $headers .= "Sender: $from_email\n";
                      
      $headers .= "Reply-To: $from_email\n";
                      
      $headers .= "Organization:  BWAT\n";
                      
      $headers .= "X-MSMail-Priority: Normal\n";
                      
      $headers .= "Content-Type: text/plain\n";

                      
      $comment $from_name.' aus '.$_POST['plz'].' '.$_POST['ort'].' hat folgende Anfrage gesendet:'."\n\n";
                       
      $comment .= "Absendezeit: ".$absendezeit"\n\n";
                       
      $comment .= "Anrede: ";
                       
      $comment .= $_POST['anrede']."\n";
                       
      $comment .= "Vorname: ";
                       
      $comment .= $_POST['vorname']."\n";
                       
      $comment .= "Name: ";
                       
      $comment .= $_POST['name']."\n";
                       
      $comment .= "Straße: ";
                       
      $comment .= $_POST['straße']."\n";
                       
      $comment .= "Plz: ";
                       
      $comment .= $_POST['plz']." ";
                       
      $comment .= "Ort: ";
                       
      $comment .= $_POST['ort']."\n";
                       
      $comment .= "Telefon: ";
                       
      $comment .= $_POST['telefon']."\n";
                       
      $comment .= "Telefax: ";
                       
      $comment .= $_POST['telefax']."\n";
                       
      $comment .= "E-Mail: ";
                       
      $comment .= $_POST['email']."\n";
                       
      $comment .= "Betreff: ";
                       
      $comment .= $_POST['betreff']."\n\n";
                       
      $comment .= "Nachricht:\n";
                       
      $comment .= $_POST['nachricht'];

                      
      // Inhalte für den Besucher

                       
      $comment2 "Herzlichen Dank für Ihr Interesse an BWAT.\n\nDie nachfolgende Nachricht wurde erfolgreich an uns zugestellt.\n\nIhre Nachricht:\n";
                      
      $comment2 .= $_POST['nachricht']."\n\n";
                       
      $comment2 .= "Wir werden uns schnellstmöglich mit Ihnen in Verbindung setzen.\n";
                       
      $comment2 .= "Ihr BWAT\n\n";
                       
      $comment2 .= "==========================================================\n\n";
                       
      $comment2 .= "BWAT\n\n";
                       
      $comment2 .= "Musterstr. 1\n";
                       
      $comment2 .= "00815 Musterhausen\n\n";
                       
      $comment2 .= "Telefon: 0151515\n";
                       
      $comment2 .= "Telefax: 545646\n";
                       
      $comment2 .= "E-Mail:  test@example.com\n";
                       
      $comment2 .= "Internet: www.example.com";

                      
      $check_send=mail($to_email,$_POST['betreff'],$comment,$headers);
                      if(
      $check_send==true && $from_email!='')
                              {
                                       if(
      $from_email!='' && $from_email!=$to_email) @mail($from_email,$_POST['betreff'],$comment2,$headers);
                                       
      header("LOCATION: $mail_success");
                              }
                             
                   
                     
              }
               } else {}
      }

      ?>
    Last edited by BWAT; 25-02-2019, 10:56. Reason: Neue Information

  • #2
    Und hier der HTML-Teil des Formulars:
    HTML Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html lang="de">
    <head>
    
    <title>Kontakt | BWAT </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <meta name="content-language" content="de" />
    <meta name="robots" content="index, follow" />
    <meta http-equiv="imagetoolbar" content="no" />
    
    <link rev="made" href="mailto:webmaster@example.com" title="E-Mail an BWAT" />
    <link href="http://www.example.com/favicon.ico" type="image/x-icon" rel="shortcut icon" />
    
    <style type="text/css">@import url(../css/style_a.css);</style>
    <!--[if lt IE 6]>
    <style type="text/css">@import url(../css/ie5_style_a.css);</style>
    <![endif]-->
    
    <script src='https://www.google.com/recaptcha/api.js'></script>
    </head>
    <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
    
    <div id="container">
            <div id="menue">
                          <img src="https://example.com/../grafiken/logo/logo.gif" width="150" height="158" border="0" alt="" usemap="#logo"></img><br />
                     <ul class="liste">
                         <li><a class="button" title="Service" href="./service.html">Service</a></li>
                             <li><a class="button" title="Leistungen" href="./leistungen.html">Leistungen</a></li>
                            <li><a class="button" title="Portrait" href="./portrait.html">Portrait</a></li>
                            <li><a class="button" title="Jobs" href="./jobs.html">Jobs</a></li>
                        <li><a class="kontaktlink" title="Kontakt" href="./kontakt.php">Kontakt</a></li>
                     </ul>
             </div>
            <div id="title"><img src="https://example.com/../grafiken/titel/titel.jpg" width="590" height="100" border="0" alt="Test" title="Willkommen" /></div>
             <div id="umenue"><img src="https://example.com/../grafiken/linien/liniehgr.gif" width="590" height="4" border="0" alt=""></img></div>
             <div id="content">
    
             <h1>Kontakt</h1>
             <h3>Für Ihre Anfragen stehen wir Ihnen jederzeit sowohl telefonisch,<br />
             als auch via
             <a class="mailkontakt2" href="mailto:test@example.com">E-Mail</a>
             zur Verfügung.</h3>
    
             BWAT<br />
             Musterstr. 1<br />
             00815 Musterhausen<br /><br />
    
              <b>Telefon:</b><span class="telefon">564646</span><br />
              <b>Telefax:</b><span class="telefax">18469</span><br />
              <b>E-Mail:</b><a class="mailkontakt" href="mailto:test@example.com">test@example.com</a><br />
              <b>Internet:</b><a class="url" href="http://www.example.com/">www.test.de</a><br /><br />
    
             <form id="kontaktformular" method="post" >
                      <label for="anrede">Anrede</label>
                      <select style="width:80px" class="select" id="anrede" name="anrede" size="1">
                             <option></option>
                                <option value="Herr">Herr</option>
                                <option value="Frau">Frau</option>
                                <option value="Firma">Firma</option>
                     </select><br />
                      <label for="vorname">Vorname</label><input style="width:165px" class="text" type="text" id="vorname" name="vorname" value="<?=(isset($_POST["vorname"]) ? $_POST['vorname'] : '') ?>" size="100px" /><span style="color:#DF0000; font-size:0.8em;"><?=$vorname_error ?></span><br />
                      <label for="name">Name</label><input style="width:165px" class="text" type="text" id="name" name="name" value="<?=(isset($_POST["name"]) ? $_POST['name'] : '') ?>" /><span style="color:#006600;">*&nbsp;</span><span style="color:#DF0000; font-size:0.8em;"><?=$name_error ?></span><br />
                      <label for="straße">Straße</label><input style="width:165px" class="text" type="text" id="straße" name="straße" value="<?=(isset($_POST["strasse"]) ? $_POST['strasse'] : '') ?>" /><span style="color:#DF0000; font-size:0.7em;"><?=$strasse_error ?></span><br />
                      <label for="plz">Plz / Ort</label><input style="width:40px" class="text" type="text" id="plz" name="plz" maxlength="5" value="<?=(isset($_POST["plz"]) ? $_POST['plz'] : '') ?>" /><input style="width:115px" class="text" type="text" id="ort" name="ort" value="<?=(isset($_POST["ort"]) ? $_POST['ort'] : '') ?>" /><span style="color:#DF0000; font-size:0.75em;"><?=$plz_error ?></span><br />
                      <label for="telefon">Telefon</label><input style="width:165px" class="text" type="text" id="telefon" name="telefon" value="<?=(isset($_POST["telefon"]) ? $_POST['telefon'] : '') ?>" /><span style="color:#006600;">*&nbsp;</span><span style="color:#DF0000; font-size:0.8em;"><?=$telefon_error ?></span><br />
                      <label for="telefax">Telefax</label><input style="width:165px" class="text" type="text" id="telefax" name="telefax" value="<?=(isset($_POST["telefax"]) ? $_POST['telefax'] : '') ?>" /><span style="color:#DF0000; font-size:0.8em;"><?=$telefax_error ?></span><br />
                      <label for="email">E-Mail</label> <input class="text" style="width:165px" type="text" id="email" name="email" value="<?=(isset($_POST["email"]) ? $_POST['email'] : '') ?>" /><span style="color:#DF0000; font-size:0.8em;"><?=$email_error ?></span><br />
                      <label for="betreff">Betreff</label> <input class="text" style="width:165px" type="text" id="betreff" name="betreff" value="<?=(isset($_POST["betreff"]) ? $_POST['betreff'] : '') ?>" /><span style="color:#DF0000; font-size:0.8em;"><?=$betreff_error ?></span><br />
                      <label for="nachricht">Ihre Nachricht</label><textarea style="width:250px" class="text" id="nachricht" name="nachricht" cols="" rows="5"><?=(isset($_POST["nachricht"]) ? $_POST['nachricht'] : '') ?><?=$nachricht_error ?></textarea><span style="color:#006600;">*&nbsp;</span><br /><br />
               
              <div class="g-recaptcha" data-sitekey="MeinOeffentlicherSchlüssel"></div>
    
              <input type="submit" id="submit" /><br />
            </form>
             <p class="stern">Die mit Sternchen<span style="color:#006600;">*</span> gekennzeichneten Felder müssen ausgefüllt werden.</p><br />
    
             </div>
             <div id="footer"><img src="https://example.com/../grafiken/linien/liniegr.gif" class="linie" width="440" height="4" border="0" alt=""></img><a class="impressum" href="./impressum.html">IMPRESSUM</a>
                                 <img src="https://example.com/../grafiken/impr/test.jpg" class="test" width="150" height="48" border="0" usemap="#test" alt="Test"></img>
                              <a class="sitemap" href="./sitemap.html">Sitemap</a>
                              <a class="stand" href="./stand.html">Stand: 22.01.2019</a>
             </div>
    </div>
    <map id="logo" name="logo">
    <area shape="poly" coords="1,149,25,159,71,159,71,153,95,153,95,148,135,148,135,132,152,132,152,112,83,112,87,97,81,99,84,79,81,80,83,65,77,68,72,38,64,48,61,62,58,72,56,82,53,95,52,109,51,126,57,137,59,141,36,140,45,125,45,118,44,115,47,100,45,98,49,78,44,80,46,64,41,67,44,46,41,44,41,24,36,26,32,1,23,1,20,18,14,28,14,34,10,47,6,65,3,87,1,108,2,129,13,140,0,141" href="http://www.example.com/" alt="" />
    </map>
    <map id="test" name="test">
    <area shape="poly" target="_blank" coords="0,48,150,48,150,0,102,0,102,21,16,21,16,37,0,37" href="http://www.test.de/" title="Test" alt="Test" />
    </map>
    
    </body>
    </html>

    Comment


    • #3
      Das Problem scheint in der Logik des reCaptcha-Teils des PHP-Codes zu liegen. Insbesondere wird der $response-Variablenwert im if-Block, der die Überprüfung des reCaptcha-Ergebnisses durchführt, nicht korrekt verarbeitet. Ich werde dir einige Schritte zur Fehlerbehebung vorschlagen und den Code entsprechend anpassen.​
      HTML Code:
      <?php
      
      // Angaben anpassen
      $to_email='test@example.com'; // Die Zieladresse
      $mail_success='./versendet.html'; // Pfad zu einer Bestätigungsseite, wenn die Mail erfolgreich versendet wurde.
      
      $error = false;
      
      // Formular-Variablen Deklarierung und Initialisierung
      $plz_error = "";
      $vorname_error = "";
      $name_error = "";
      $telefon_error = "";
      $telefax_error = "";
      $strasse_error = "";
      $ort_error = "";
      $email_error = "";
      $betreff_error = "";
      $nachricht_error = "";
      
      // Hier werden alle Pflichtfelder festgelegt. Diese Felder dürfen nicht leer bleiben.
      $pflicht = ['name', 'telefon', 'nachricht'];
      
      $absendezeit = date('h-i-s, j-m-y');
      
      if ($_POST) {
          // prüfen, ob eines der Pflichtfelder leer ist
          foreach ($pflicht as $key => $result) {
              if (empty($_POST[$result])) {
                  ${$pflicht[$key] . '_error'} = 'Bitte ausfüllen';
                  $error = true;
              }
          }
      
          // Prüfung der PLZ
          $pattern_plz = "/^[0-9]{5}$/";
          if (!preg_match($pattern_plz, $_POST['plz']) && $_POST['plz'] != '') {
              $plz_error = 'falsches Plz Format';
              $error = true;
          }
      
          // Prüfung der Telefonnummer
          $pattern_tel = "/^[0-9-()\/+.]*$/";
          if (!preg_match($pattern_tel, $_POST['telefon']) && $_POST['telefon'] != '') {
              $telefon_error = 'falsches Format';
              $error = true;
          }
      
          // Prüfung der Faxnummer
          $pattern_fax = "/^[0-9-()\/+.]*$/";
          if (!preg_match($pattern_fax, $_POST['telefax']) && $_POST['telefax'] != '') {
              $telefax_error = 'falsches Format';
              $error = true;
          }
      
          // Prüfung reCaptcha
          $captcha = isset($_POST["g-recaptcha-response"]) ? $_POST['g-recaptcha-response'] : '';
          $secret = "MeinGeheimerSchluessel";
          $verify = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $secret . "&response=" . $captcha), true);
      
          if (!$verify['success']) {
              $error = true;
              $captcha_error = 'Captcha-Verifizierung fehlgeschlagen. Bitte erneut versuchen.';
          }
      
          // Wenn keine Fehler vorhanden, dann kann die Mail versendet werden
          if (!$error) {
              $from_name = "{$_POST['vorname']} {$_POST['name']}";
              $from_email = !empty($_POST['email']) ? $_POST['email'] : $to_email;
      
              $headers  = "X-Sender: $from_name<$from_email>\n";
              $headers .= "X-Mailer: $from_name powered by BWAT\n";
              $headers .= "Return-Path: <$from_email>\n";
              $headers .= "Date: " . date('r') . "\n";
              $headers .= "From: $from_email \n";
              $headers .= "Sender: $from_email\n";
              $headers .= "Reply-To: $from_email\n";
              $headers .= "Organization:  BWAT\n";
              $headers .= "X-MSMail-Priority: Normal\n";
              $headers .= "Content-Type: text/plain\n";
      
              $comment  = $from_name . ' aus ' . $_POST['plz'] . ' ' . $_POST['ort'] . ' hat folgende Anfrage gesendet:' . "\n\n";
              $comment .= "Absendezeit: " . $absendezeit . "\n\n";
              $comment .= "Anrede: " . $_POST['anrede'] . "\n";
              $comment .= "Vorname: " . $_POST['vorname'] . "\n";
              $comment .= "Name: " . $_POST['name'] . "\n";
              $comment .= "Straße: " . $_POST['straße'] . "\n";
              $comment .= "Plz: " . $_POST['plz'] . " Ort: " . $_POST['ort'] . "\n";
              $comment .= "Telefon: " . $_POST['telefon'] . "\n";
              $comment .= "Telefax: " . $_POST['telefax'] . "\n";
              $comment .= "E-Mail: " . $_POST['email'] . "\n";
              $comment .= "Betreff: " . $_POST['betreff'] . "\n\n";
              $comment .= "Nachricht:\n" . $_POST['nachricht'];
      
              $comment2 = "Herzlichen Dank für Ihr Interesse an BWAT.\n\nDie nachfolgende Nachricht wurde erfolgreich an uns zugestellt.\n\nIhre Nachricht:\n";
              $comment2 .= $_POST['nachricht'] . "\n\n";
              $comment2 .= "Wir werden uns schnellstmöglich mit Ihnen in Verbindung setzen.\nIhr BWAT\n\n";
              $comment2 .= "==========================================================\n\n";
              $comment2 .= "BWAT\n\n";
              $comment2 .= "Musterstr. 1\n";
              $comment2 .= "00815 Musterhausen\n\n";
              $comment2 .= "Telefon: 0151515\n";
              $comment2 .= "Telefax: 545646\n";
              $comment2 .= "E-Mail:  test@example.com\n";
              $comment2 .= "Internet: www.example.com";
      
              $check_send = mail($to_email, $_POST['betreff'], $comment, $headers);
              if ($check_send == true && $from_email != '') {
                  if ($from_email != '' && $from_email != $to_email) @mail($from_email, $_POST['betreff'], $comment2, $headers);
                  header("LOCATION: $mail_success");
                  exit();
              } else {
                  echo "Fehler beim Senden der E-Mail.";
              }
          }
      }
      
      ?>
      ​
      Änderungen und Erklärungen1:
      1. Captcha-Überprüfung:
        • Ich habe die Überprüfung von $response durch die Überprüfung von $verify['success'] ersetzt. Dies ist die Standardmethode, um zu überprüfen, ob die reCaptcha-Überprüfung erfolgreich war.
      2. Fehlermeldungen:
        • Wenn reCaptcha fehlschlägt, wird eine spezielle Fehlermeldung in $captcha_error gesetzt. Du kannst diese Fehlermeldung dann in deinem Formular anzeigen.
      3. Redundante Code-Blöcke entfernt:
        • Der leere else {}-Block am Ende des Codes wurde entfernt, da er keine Funktion erfüllt hat.
      4. Fehlerbehebung:
        • Falls das Formular dennoch nicht funktioniert, überprüfe die PHP-Fehlerprotokolle auf dem Server. Eventuell gibt es Probleme, die durch die Mail-Einstellungen verursacht werden könnten (z. B. Konfiguration von sendmail oder SMTP-Server).
      Last edited by admin; 22-08-2024, 11:36.

      Comment


      • #4
        Formular-HTML: Stelle sicher, dass dein Formular korrekt eingerichtet ist, einschließlich des action-Attributs und des method-Attributs (normalerweise POST).

        Comment


        • #5
          Originally posted by BWAT View Post
          Hallo,
          bei einer alten Webseite, die ich noch bis Ende des Jahres betreue, muss ich ein reCaptcha einbauen, damit der Hoster aufgrund von Spam die PHP-Mail-Funktion wieder freigibt. Das ist jetzt (angeblich) auch passiert, da die reCaptcha-Überprüfung selbst funktioniert.

          Edit: Nach Rücksprache des Hosters ist die Funktion definitiv wieder aktiviert: "Die Serveradministratoren haben die PHP-mail()-Funktion wieder aktiviert." Daran kann es also nicht liegen, dass das Formular-Absenden nicht funktioniert.

          Eigentlich bin ich schon zu lange aus dem Thema PHP draußen. Mit etwas Hilfe habe ich es nun hinbekommen. Bis jetzt. Ich komme leider nicht weiter. Vielleicht kann mir jemand von euch weiterhelfen?
          • Die Überprüfung der einzelnen Felder funktioniert augenscheinlich. Zumindest werden etwaige gewollte Fehlermeldungen angezeigt. slope
          • Wenn man ohne das reCaptcha zu nutzen absenden möchte, werden dennoch keine Fehlermeldungen vom reCaptcha angezeigt. Aber die Seite "ruckelt" dann nur kurz. An der Seite selbst ändert sich sonst nichts.
          • Wenn man das Formular mit genutztem reCaptcha absenden möchte, funktioniert dessen Prüfung, aber beim Absenden passiert auch hier nichts. Wieder nur besagter "Ruckler". Es wird weder die E-Mail aus dem Formular abgesendet, noch wird man auf die "versendet.html" weitergeleitet.


            Anbei das Kontaktformular. Aus Datenschutzgründen habe ich hoffentlich alle entsprechenden Informationen entfernt.
            Aufgrund der begrenzten Zeichenlänger hier erst einmal der PHP-Teil des Formulars:

            PHP Code:
            <?php


                
            // Angaben anpassen
                
            $to_email='test@example.com'//Die Zieladresse
                
            $mail_success='./versendet.html'// Pfad zu einer Bestätigungsseite, wenn die Mail erfolgreich versendet wurde.

                
            $error=false;



                
            // Formular-Variablen Deklarierung und Initialisierung
                
            $plz_error="";
                
            $vorname_error="";
                
            $name_error="";
                
            $telefon_error="";
                
            $telefax_error="";
                
            $strasse_error="";
                
            $ort_error="";
                
            $email_error="";
                
            $betreff_error="";
                
            $nachricht_error="";




                
            // Hier werden alle Pflichtfelder festgelegt. Diese Felder dürfen nicht leer bleiben.
                
            $pflicht[]='name';
                
            $pflicht[]='telefon';
                
            $pflicht[]='nachricht';

                
            $absendezeit date('h-i-s, j-m-y');

                if(
            $_POST)
                {
                
            // prüfen, ob eines der Pflichtfelder leer ist
                
            foreach($pflicht AS $key => $result)
                {
                if(!
            $_POST[$result])
                {
                ${
            $pflicht[$key].'_error'}='Bitte ausfüllen';
                
            $error=true;
                }
                }

                
            // Prüfung der PLZ
                
            $pattern_plz="/^[0-9]{5}$/";
                if(!
            preg_match($pattern_plz,$_POST['plz']) && $_POST['plz']!='')
                {
                
            $plz_error='falsches Plz Format';
                
            $error=true;
                }

                
            // Prüfung der Telefonnummer
                
            $pattern_tel="/^[0-9-()\/+.]*$/";
                if(!
            preg_match($pattern_tel,$_POST['telefon']) && $_POST['telefon']!='')
                {
                
            $telefon_error='falsches Format';
                
            $error=true;
                }

                
            // Prüfung der Faxnummer
                
            $pattern_fax="/^[0-9-()\/+.]*$/";
                if(!
            preg_match($pattern_fax,$_POST['telefax']) && $_POST['telefax']!='')
                {
                
            $telefax_error='&nbsp;&nbsp;&nbsp;&nbsp;falsches Format';
                
            $error=true;
                }

                
            // Prüfung recaptchar


                // Prüfung recaptchar
                
            $captcha=(isset($_POST["captcha"]) ? $_POST['captcha'] : '');
                
            $secret="MeinGeheimerSchluessel";

                
            //Recaptcha verification and JSON response decode
                
            $verify=json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$captcha), true);
                
            $error=!$verify["success"];

                if (isset(
            $response) && $response->success) {




                
            // Wenn keine Fehler vorhanden, dann kann die Mail versendet werden
                
            if(!$error)
                {




                
            $from_name="{$_POST['vorname']} {$_POST['name']}";
                
            $from_email=($_POST['email']!='') ? $_POST['email'] : $to_email;


                
            $headers "X-Sender: $from_name<$from_email>\n";
                
            $headers .= "X-Mailer: $from_name powered by BWAT\n";
                
            $headers .= "Return-Path: <$from_email>\n";
                
            $headers .= "Date: "date('r'). "\n";
                
            $headers .= "From: $from_email \n";
                
            $headers .= "Sender: $from_email\n";
                
            $headers .= "Reply-To: $from_email\n";
                
            $headers .= "Organization: BWAT\n";
                
            $headers .= "X-MSMail-Priority: Normal\n";
                
            $headers .= "Content-Type: text/plain\n";

                
            $comment $from_name.' aus '.$_POST['plz'].' '.$_POST['ort'].' hat folgende Anfrage gesendet:'."\n\n";
                
            $comment .= "Absendezeit: ".$absendezeit"\n\n";
                
            $comment .= "Anrede: ";
                
            $comment .= $_POST['anrede']."\n";
                
            $comment .= "Vorname: ";
                
            $comment .= $_POST['vorname']."\n";
                
            $comment .= "Name: ";
                
            $comment .= $_POST['name']."\n";
                
            $comment .= "Straße: ";
                
            $comment .= $_POST['straße']."\n";
                
            $comment .= "Plz: ";
                
            $comment .= $_POST['plz']." ";
                
            $comment .= "Ort: ";
                
            $comment .= $_POST['ort']."\n";
                
            $comment .= "Telefon: ";
                
            $comment .= $_POST['telefon']."\n";
                
            $comment .= "Telefax: ";
                
            $comment .= $_POST['telefax']."\n";
                
            $comment .= "E-Mail: ";
                
            $comment .= $_POST['email']."\n";
                
            $comment .= "Betreff: ";
                
            $comment .= $_POST['betreff']."\n\n";
                
            $comment .= "Nachricht:\n";
                
            $comment .= $_POST['nachricht'];

                
            // Inhalte für den Besucher

                
            $comment2 "Herzlichen Dank für Ihr Interesse an BWAT.\n\nDie nachfolgende Nachricht wurde erfolgreich an uns zugestellt.\n\nIhre Nachricht:\n";
                
            $comment2 .= $_POST['nachricht']."\n\n";
                
            $comment2 .= "Wir werden uns schnellstmöglich mit Ihnen in Verbindung setzen.\n";
                
            $comment2 .= "Ihr BWAT\n\n";
                
            $comment2 .= "==========================================================\n\n";
                
            $comment2 .= "BWAT\n\n";
                
            $comment2 .= "Musterstr. 1\n";
                
            $comment2 .= "00815 Musterhausen\n\n";
                
            $comment2 .= "Telefon: 0151515\n";
                
            $comment2 .= "Telefax: 545646\n";
                
            $comment2 .= "E-Mail: test@example.com\n";
                
            $comment2 .= "Internet: www.example.com";

                
            $check_send=mail($to_email,$_POST['betreff'],$comment,$headers);
                if(
            $check_send==true && $from_email!='')
                {
                if(
            $from_email!='' && $from_email!=$to_email) @mail($from_email,$_POST['betreff'],$comment2,$headers);
                
            header("LOCATION: $mail_success");
                }



                }
                } else {}
                }

                
            ?>
          Sind alle Pflichtfelder korrekt ausgefüllt?
          Überprüfe, ob die Pflichtfelder tatsächlich ausgefüllt sind und keine leeren Werte übergeben werden. Gibt es vielleicht ein Problem mit den Feldnamen?​

          Comment


          • #6
            Hallo zusammen, vielen Dank für die Antworten Mein Beitrag sechs Jahre alt.Die Webseite existiert nicht einmal mehr.
            Ich freue mich aber, dass man hier nicht vergessen wird.

            Comment


            • #7
              Originally posted by BWAT View Post
              Hallo zusammen, vielen Dank für die Antworten Mein Beitrag sechs Jahre alt.Die Webseite existiert nicht einmal mehr. sprunki 2

              Ich freue mich aber, dass man hier nicht vergessen wird.
              Es scheint, dass es keine gespeicherten Notizen zu deinem Beitrag gibt. Wenn du möchtest, kann ich dir helfen, eine neue Notiz zu erstellen oder weitere Informationen dazu zu finden

              Comment

              Working...
              X