Joomla: ajouter une protection anti-spam à votre boutique Virtuemart
Et voilà. Votre petite boutique en ligne prend de l’ampleur et est victime de son succès : des programmes automatiques utilisent les formulaires de demande d’information sur vos produits pour vous envoyer du spam !
Les liens Associés à chaque produit de la boutique, « Poser une question sur ce produit« , sont très fréquemment utilisés à mauvais escient.
Pas de panique, en quelques clics vous pouvez ajouter une protection efficace, non seulement dans la boutique Virtuemart mais aussi dans d’autres formulaires de contact.
Comment ? En ajoutant un Captcha, petit formulaire de test permettant de différencier de manière automatisée un utilisateur humain d’un programme informatique.
Préparation
Il faut télécharger un plugin Captcha Integrator qui va vous simplifier la vie, puisqu’il se chargera de brancher le contrôle Captcha où vous voudrez dans votre site, sans faire de codage.
Puis se connecter au site http://www.google.com/recaptcha qui propose ce service et remplir les champs demandés pour obtenir les codes qui vont vous permettre d’activer le plugin.
Saisir votre nom de domaine, et vous obtiendrez deux clés à conserver pour paramétrer le plugin.
Mise en place dans Virtuemart
Installez le plugin Captcha Integrator de façon classique dans Joomla, puis éditez ses propriétés:
- Activez le plugin
- Saisissez les clés publique et privée obtenues précédemment
- Placez le mode « Inclusion Syntax » à YES
- Placez le mode « Auto-verify » à YES
- Sauvegardez
Éditez ensuite le fichier joomla\components\com_virtuemart\themes\default\templates\pages\shop.ask.tpl.php
Allez vers la ligne 35 et cherchez la ligne qui ressemble à <input type= »button » name= »send »…..
Juste au dessus de cette ligne, écrivez simplement le texte {captcha}
Sauvegardez le fichier et c’est terminé.
Maintenant le formulaire « Poser une question sur ce produit » présente un beau captcha.
Et pour qu’il soit encore plus beau, n’hésitez pas à personnaliser son aspect grâce aux informations proposée par google/captcha. Par exemple pour avoir le captcha dans une couleur grise et en français, ajoutez, toujours dans le fichier shop.ask.tpl.php la ligne <script type= »text/javascript »> var RecaptchaOptions = {lang : ‘fr’, theme : ‘white’} </script> juste au début du formulaire qui commence par <form action= »<?php echo…
C’est tout


Twitter
Facebook
LinkedIn
Plaxo
Youtube
RSS
Bonsoir,
Merci pour cette article, il m’a été très utile
Bonne soirée
Merci beaucoup, simple et efficace !!
ça marche nickel, merci pour ce tutorial !
Bonjour,
Il y a quelques jours, notre boutique en ligne gérée avec joomla et virtuemart a été spammé par le formulaire « Poser une question sur ce produit ». J’ai mis le site Hors Ligne puis une fois réactivé, les spams ont cessés.
Pour éviter des « récidives » j’aimerais y installer un captcha.
J’ai donc suivi à la lettre les précédures expliquées précédemment, mais rien ne se passe. Aucun captcha dans le formulaire
Et pourtant je me suis appliquée (oh que oui !)
Etant très très débutante dans ce domaine, j’ai besoin de plus amples explications SVP.
Merci.
Bonsoir, je vous contacte par mail pour vérifier ensemble vos réglages
Bonjour,
J’ai suivi votre tuto, mais le captcha ne marche pas
Merci de votre réponse
@maryse Si l’installation du plugin s’est bien passée, ce qui peut arriver c’est d’oublier de l’activer. Du coup tous les réglages sont bons, mais non actifs.
Attention aussi à la syntaxe et à l’emplacement dans le template, pour faire afficher le captcha où vous le souhaitez; les accolades sont obligatoires.
Bonsoir,
Tout fonctionne bien pour le formulaire « poser une question sur ce produit »
mais comment fait on pour intégrer {captcha} dans le formulaire d’enregistrement par exemple.
Merci de me répondre.
Anne
@Anne Tu peux par exemple éditer le fichier /www/administrator/components/com_virtuemart/html/checkout_register_form.php et inclure le {captcha} juste avant la balide input type= »submit » value= »‘. $VM_LANG…
Bonjour, votre solution fonctionne très bien ! merci.
Une question… Si je mets pas le bon captcha j’ai une erreur, c’est normal mais le problème, c’est qu’elle est en anglais…. Comment faire pour la mettre en français ?
Merci
@Seb Bonne question, je n’avais pas remarqué. Théoriquement il faut renseigner des variables javascript avant d’appeler le captcha, comme décrit ci-dessous, mais cela ne semble pas pris en compte. J’ai trouvé pas mal de questions sur ce « custom_translations » mais aucune réponse…
var RecaptchaOptions = {
custom_translations : {incorrect_try_again : « Essayez encore… »
https://developers.google.com/recaptcha/docs/customization?hl=fr