Vous n'êtes pas identifié(e).
[25 janvier 2021] - Publication de Wanewsletter 3.1.0
Pages : 1
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
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
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
Pages : 1