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, 09: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
      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

      Working...
      X