J'ai ajouté le google recaptcha dans le formulaire contactez-nous, mais la valeur est également soumise sans captcha. J'ai utilisé dans ma page de contact les codes suivants pour captcha:
<div class="g-recaptcha" data-sitekey="XXXXXXXXXX"></div>
<script src='https://www.google.com/recaptcha/api.js'></script>
Ces deux codes que j'ai utilisés. dites-moi comment valider le captcha.
magento-1.9
form-validation
contact-form
captcha
google-api
Manish Gaur
la source
la source
Réponses:
Vous devriez essayer ce code: je l'ai utilisé sur mon site.
la source
Ce script utilise pour la validation google reCaptcha comme une validation par défaut de magento. veuillez l'utiliser.
la source
J'ai utilisé recaptcha dans le formulaire de contact ..
la source
À mon avis, la solution JavaScript acceptée ci-dessus n'est certainement pas la voie à suivre. Tout bot qui n'utilise pas JS (qui est la plupart d'entre eux) contournera simplement votre validation et vous obtiendrez tout le spam que vous essayez de bloquer. Toujours toujours toujours valider sur le serveur. La validation JS n'est qu'une première étape UX.
Quoi qu'il en soit, il existe plusieurs solutions, mais voici ce qui a fonctionné pour moi dans Magento 1.9 après de nombreuses heures de recherche. Cela s'appuyait à l'origine sur la réponse de Mike ci-dessus, mais remplace file_get_contents par cURL car la fonction précédente vous donnera généralement des erreurs de wrapper http en fonction de la configuration de votre serveur.
Créez votre propre module en créant un dossier / app / code / local / YourVendorName / ValidateCaptcha /
Dans votre nouveau dossier ValidateCaptcha, ajoutez un dossier Model avec un fichier Customer.php. Il sera utilisé pour remplacer le fichier core Customer.php fourni par Magento.
Copiez et collez ce code:
Ajoutez maintenant un dossier etc à votre module et créez un config.xml avec les éléments suivants:
Ensuite, vous devrez ajouter le JS à votre tête de thème. Sous app / design / frontend / default / YOURTHEME / template / page / html / head.phtml ajoutez ce droit à la fin. Si vous n'avez pas ce fichier, copiez-le à partir des fichiers de base. N'écrasez pas les fichiers de base, cependant. Faites toujours le vôtre!
Maintenant, dans app / design / frontend / default / YOURTHEME / template / persistent / customer / form / register.phtml, ajoutez ceci juste avant la div set de boutons vers le bas:
Presque fini! Enregistrez maintenant votre nouveau module en créant une application / etc / modules / YourVendorName / ValidateCaptcha.xml avec les éléments suivants:
Remplacez YourVendorName tout au long de ce que vous souhaitez. Votre structure finale devrait ressembler à:
la source
Pour valider le captcha, créez un contrôleur de sauvegarde pour enregistrer vos valeurs de formulaire et également la validation.
Assurez-vous d'avoir remplacé la clé de site et la clé secrète dans les exemples de codes ci-dessus.
la source
NID,
Votre extrait de script reCaptcha semble fonctionner, mais clarifiez s'il est entré dans le fichier head.phtml source de Magento? (ou le formulaire.phtml?) à placer juste en dessous en dehors de Magento par défaut pré PHP en type vert car c'est un.
Question lors de la saisie de php en particulier, est-il courant de l'entrer après cette section de commentaires php immédiate que Magento place en haut pour la plupart de leurs pages source de modèle comme cet exemple ci-dessous?
Magento Disclaimer code ici dans les balises php. PLACER LE RECAPTCHA ICI script de snippit ici?
De plus, qu'est-ce qui rend ce code de vérification de réponse reCaptcha dans cette vidéo ci-dessous plus adapté à la structure des méthodes de Magento: Ce tutoriel utilise sur la première ligne la ligne $ reCaptcha = $ _POST ?
Dernière question alternative: que se passe-t-il si j'utilise la version php pour effectuer cette vérification de réponse reCaptcha, un extrait de code php sera entré après la section des commentaires verts du modèle magento par défaut de php comme ceci
Certains codes, je ne veux pas que les messages apparaissent sur le front-end parce que contactForm par défaut donne déjà ses alertes rouges si l'utilisateur ne saisit pas toutes les informations qu'il dira sous chaque champ, je veux juste que reCaptcha fonctionne pour ce contactForm. Mais d'une manière que je comprendrai également pour une utilisation future. Votre chemin est créé par vous-même en tant que développeur ou programmeur?
la source