Annonce

#1 Re : Aide technique » Mis en place d'un Recaptcha » 2020-05-08 17:49:19

Mille merci !!

j'ai fais exactement ce que vous avez dit (pourquoi chercher compliqué quand c'est simple) et ca marche impeccable !! Vous n'êtes donc pas si rouillé que ça smile

pour info voila mon code final:

<?php                               
    // Ma clé privée
    $secret = "xxxxxxxxxxxxxxxxxxx";
    // Paramètre renvoyé par le recaptcha
    $response = $_POST['g-recaptcha-response'];
    // On récupère l'IP de l'utilisateur
    $remoteip = $_SERVER['REMOTE_ADDR'];
   
    $api_url = "https://www.google.com/recaptcha/api/siteverify?secret="
        . $secret
        . "&response=" . $response
        . "&remoteip=" . $remoteip ;
   
    $decode = json_decode(file_get_contents($api_url), true);
   
    if ($decode['success'] == true) {
                require '/flex/storage/mon_domaine.com/site/www/mailing/newsletter.php';
        // C'est un humain
    }
   
    else {
        // C'est un robot ou le code de vérification est incorrecte
       
        echo 'Please verify that you have checked the Recaptcha !';
    }
?>

je pense que vous devriez à l'avenir l'intégrer dans votre script (qui pour moi est le meilleur) en natif.

encore merci !

très bonne soirée

cordialement

#2 Aide technique » Mis en place d'un Recaptcha » 2020-05-08 11:13:42

Gautier42
Réponses : 3

Bonjour,

Je souhaiterai mettre en place la protection Recaptcha de Google sur le formulaire d'inscription de la newsletter. Apres de multiples essais, le bouton à cocher google apparait bien et la clé est bien verifiée. le problème est que le non-cochage du recaptcha ne bloque pas l'inscription. si quelqu'un à une solution... je vous joint les différent codes

Voici la partie du code du formulaire (mailing.php) :

<form method="post" action="http://www.mon_domaine.com/mailing_form.php#success" autocomplete="off">
                            <div class="row gtr-50">
                               <div class="col-4 off-4">
                            Your E-mail Adress: <input type="text" name="email" maxlength="80" />
                                            <input type="hidden" name="format" value="2" />
                                            <input type="hidden" name="liste" value="1" />
                                            <br />
                            Please Choose An Option:<select name="action">
                                                        <option value="inscription">Subscribe</option>
                                                    <option value="desinscription">Unsubscribe</option>
                                            </select><br/><br/>
                                                                                        <div class="g-recaptcha" id="recaptcha" name="recaptcha" data-sitekey="XXXXXXXXXXXXXXXXX"></div><br/>
                                            <input type="submit" name="wanewsletter" value="Submit" onFocus="javascript:this.value='Please Wait...'"/></div></div>
</form>

Code du fichier mailing_form.php:

<div id="success"><?php
require '/flex/storage/mon_domaine/site/www/mailing/newsletter.php';?></div>


le fichier newsletter.php n'a pas été modifié. Je me sert de mailing.php et mailing_form.php pour garder la charte graphique de mon site.

Je voudrais savoir où je peux intégrer le code ci-dessous afin d'empêcher l'inscription si le recaptcha n'est pas coché:

       <?php
    // Ma clé privée
    $secret = "XXXXXXXXXXXXXXXXX";
    // Paramètre renvoyé par le recaptcha
    $response = $_POST['g-recaptcha-response'];
    // On récupère l'IP de l'utilisateur
    $remoteip = $_SERVER['REMOTE_ADDR'];
   
    $api_url = "https://www.google.com/recaptcha/api/siteverify?secret="
        . $secret
        . "&response=" . $response
        . "&remoteip=" . $remoteip ;
   
    $decode = json_decode(file_get_contents($api_url), true);
   
    if ($decode['success'] == true) {
        // C'est un humain
    }
   
    else {
        // C'est un robot ou le code de vérification est incorrecte
                echo 'Veuillez passer le test Recaptcha !';
    }
?>

je pense qu'il faudrait en plus du code fourni par google rajouter un truc du genre : "if $response = $_POST['g-recaptcha-response'];" dans le fichier newsletter.php mais je n'arrive pas à trouver où sans tout bloquer.

Je vous remercie

Gautier

Pied de page des forums

Propulsé par FluxBB