Le 15/05/2018 à 18:27, Regis a écrit :
Bonjour à tous,

QQun a-t-il réussi à intégrer le reCAPTCHA de GOOGLE sur ce plugin (https://contrib.spip.net/Formulaire-de-contact-avance) ?

Nous avons été spammé par un robot qui a balancé +65000 emails en qq heures depuis le formulaire de contact de notre site SPIP 3... il y a urgence pour nous à mettre en place un CAPTCHA sur ce formulaire ! Problème : celui-ci s'affiche bien, mais niveau traitement le plugin ne semble pas prévu pour intégrer ce genre de chose... Qqun sait-il quel est le fichier à modifier pour cela dans le code du plugin... ? Dans quelle fonction ce dernier doit se greffer... ?

Merci vivement pour toute aide.

Bonjour,
J'ai des formulaires de contacts "maison" (sans plugins) qui utilisent le recaptcha et qui fonctionnent bien. Ça a été coton à mettre en place.
Grosso merdo, quelques pistes:
Il faut inclure la librairie recaptchalib.php dans formulaire.php et déclarer ces variables:

include_spip('recaptchalib');
# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = null;

ensuite dans verifier:

$privatekey = "mettre_sa_cle_prive";

        if (_request('confirmer')) {
                $reCaptcha = new ReCaptcha($privatekey);
                        $resp = $reCaptcha->verifyResponse(
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["g-recaptcha-response"]
                                );                              
                        if ($resp == null OR !$resp->success) {
                        $erreurs['previsu'] = ' ';                              
$erreurs['message_erreur'] = "Il y a 1 erreur dans votre saisie (mauvais code reCAPTCHA), veuillez vérifier les informations."; $erreurs['recaptchavaerror'] = " Le code reCAPTCHA saisi ne correspond pas. Essayez de nouveau:";
                        }               
        }

ensuite gérer les erreurs. dans formulaire.html:

[ <span class="erreur_message" id="msg_erreur_recaptcha">(#ENV*{erreurs}|table_valeur{recaptchavaerror})</span>]
<script type="text/javascript">
var imNotARobot = function() {
$('#msg_erreur_recaptcha, .reponse_formulaire_erreur').remove(); $('#confirmer').prop("disabled", false);
};
var isexpired = function() {
                                                                
$('#confirmer').prop("disabled", true);
                                                                
$('#msg_erreur_recaptcha, .reponse_formulaire_erreur').remove();
};
</script>
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="cle_publique_ici" data-callback="imNotARobot" data-expired-callback="isexpired"></div>




_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à  spip-...@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Répondre à