2017-07-24 4 views
-1

Je peux envoyer le formulaire avec ou sans la case cochée. Aucune idée d'endroit où aller ici. J'ai un formulaire "personnalisé" qui accepte les adresses e-mail. Un fichier téléchargé précédemment .csv est vérifié pour cette adresse e-mail spécifique et envoie l'adresse e-mail et l'ensemble de données correspondant à cette adresse e-mail dans le fichier .csv.Google recaptcha sous forme personnalisée

Tout cela fonctionne mais j'ai besoin d'ajouter une fonction reCaptcha. Donc, je voulais utiliser Google.

Voici le code (sans la fonction de vérification et de courrier). La forme de base

<form action="" method="post" enctype="multipart/form-data"> 
    <input type="text" name="field_name" /> 
    <div class="g-recaptcha" data-sitekey="6LcYnikUAAAAAMUyMmPRUlnnF-1i3pShj52unsn5"></div> 
    <input type="submit" value="Versturen" /> 
</form> 

L'en-tête contient:
<script src='https://www.google.com/recaptcha/api.js'></script>

Plus d'info:
- Le php qui gère le contrôle de courrier électronique et le fichier est ajouté après la forme (également essayé avant la forme, mais pas de différence
- Je reçois des avertissements disant qu'il ne peut pas inclure wp-load.php mais si j'envoie le formulaire il enverra et livrera.

Warning: include(../../../wp-load.php): failed to open stream: File or folder doesn't exist in /home/xxx/wp-content/themes/xxx/template.php on line 39 

Warning: include(../../../wp-load.php): failed to open stream: File or folder doesn't exist in /home/xxx/wp-content/themes/xxx/template.php on line 39 

Warning: include(): Failed opening '../../../wp-load.php' for inclusion (include_path='.:/opt/alt/php56/usr/share/pear:/opt/alt/php56/usr/share/php') in /home/xxx/wp-content/themes/xxx/template.php on line 39 

Ligne 39: include '../../../wp-load.php';

Toute idée pourquoi le reCaptcha ne fonctionnera pas?

+0

Bonjour Interactive, vous pouvez ajouter un peu de javascript, pour aider à obtenir votre travail de formulaire. S'il vous plaît voir cette réponse: https://stackoverflow.com/questions/29612879/google-recaptcha-how-to-make-required/29613089#29613089 – colecmc

+0

Compris. Je n'ai pas mis en place la vérification. Sentez-vous vraiment stupide maintenant. Thnx tho ' – Interactive

Répondre

1

Il faut une vérification .....
Parce que le formulaire est personnalisé, j'ai dû mettre en œuvre la vérification. Forme:

<div> 
    <form action="" method="post" id="FORMID" enctype="multipart/form-data"> 
     <input type="text" name="field_name" /><br /> 
     <div class="g-recaptcha" data-sitekey="==SITEKEY=="></div> 
     <input type="submit" name="Submit" id="submit" value="Send" /> 
    </form> 
</div> 
<script src='https://www.google.com/recaptcha/api.js?hl=nl'></script> 
     <script type="text/javascript"> 
     jQuery("#submit").click(function(e){ 
       var data_2; 
      jQuery.ajax({ 
         type: "POST", 
         url: "http://www.example.com/wp-content/themes/THEME/includes/google_captcha.php", 
         data: jQuery('#FORMID').serialize(), 
         async:false, 
         success: function(data) { 
         if(data.nocaptcha==="true") { 
         data_2=1; 
          } else if(data.spam==="true") { 
         data_2=1; 
          } else { 
         data_2=0; 
          } 
         } 
        }); 
        if(data_2!=0) { 
         e.preventDefault(); 
         if(data_2==1) { 
         alert("Check the captcha box"); 
         } else { 
         alert("Please Don't spam"); 
         } 
        } else { 
         jQuery("#FORMID").submit 
        } 
      }); 
     </script> 

google_captcha.php

<?php 
$data; 
header('Content-Type: application/json'); 
error_reporting(E_ALL^E_NOTICE); 
if(isset($_POST['g-recaptcha-response'])) { 
    $captcha=$_POST['g-recaptcha-response']; 
} 
if(!$captcha){ 
    $data=array('nocaptcha' => 'true'); 
    echo json_encode($data); 
    exit; 
} 
// calling google recaptcha api. 

$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=KEYSECRET&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); 
// validating result. 
if($response.success==false) { 
    $data=array('spam' => 'true'); 
    echo json_encode($data); 
} else { 
    $data=array('spam' => 'false'); 
    echo json_encode($data); 
} 
?>