Accueil > Joomla > Joomla: ajouter une protection anti-spam à votre boutique Virtuemart

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 suivante juste au début du formulaire qui commence par <form action= »<?php echo…

<script type="text/javascript"> 
var RecaptchaOptions = {lang : 'fr', theme : 'white'} </script>

C’est tout :-)

 

  1. 23/12/2011 à 01:57 | #1

    Bonsoir,

    Merci pour cette article, il m’a été très utile
    Bonne soirée

  2. Nicolas
    03/01/2012 à 00:53 | #2

    Merci beaucoup, simple et efficace !!

  3. 08/01/2012 à 12:50 | #3

    ça marche nickel, merci pour ce tutorial !

  4. bnpocket
    10/01/2012 à 18:36 | #4

    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.

  5. 10/01/2012 à 19:15 | #5

    Bonsoir, je vous contacte par mail pour vérifier ensemble vos réglages :-)

  6. 17/01/2012 à 10:13 | #6

    Bonjour,
    J’ai suivi votre tuto, mais le captcha ne marche pas
    Merci de votre réponse

  7. 17/01/2012 à 22:21 | #7

    @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.

  8. Anne
    07/02/2012 à 19:14 | #8

    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

  9. 07/02/2012 à 20:04 | #9

    @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…

    Aouter un captcha à l'enregistrement client

  10. Seb
    28/03/2012 à 14:18 | #10

    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

  11. 28/03/2012 à 21:18 | #11

    @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

  12. émilie
    10/07/2012 à 14:35 | #12

    bonjour,
    merci pour ce petit tuto ! J’aurais bien aimé le mettre en pratique, mais le lien pour télécharger captcha integrator n’a pas l’air de fonctionner… est-ce que le plugin est toujours dispo ?
    Merci d’avance !

  13. 10/07/2012 à 15:28 | #13

    Mince tu as raison, cette extension à été dépubliée. Il semble par contre que le plugin « RVS reCaptcha » fasse la même chose, en intégrant la Captcha de Google dons Joomla.

    http://extensions.joomla.org/extensions/access-a-security/site-security/captcha/15782

  14. 01/11/2012 à 01:15 | #14

    Bonjour, j’ai voulu utiliser recaptcha au départ sur free, mais beaucoup de fonction sont bloquées et free est en php4 donc recaptcha est bloqué. Mon site est en cours de construction sur un autre site d’hébergement moins bridé et en php5 et il y aura une passerelle pour conserver l’adresse actuelle. Bref, j’en viens à mon souci. même en php5, l’option de langage pour recaptcha ne fonctionne pas. J’ai mis lang : ‘fr’, et les mots restent en anglais. Comment activer le français? me faut il une library différente?

  15. 01/11/2012 à 18:24 | #15

    @julien a priori il suffit de suivre la documentation en ligne : https://developers.google.com/recaptcha/docs/customization?hl=fr
    On peut y changer le look, la forme et la langue.

    Dans mon formulaire de contact joomla (et dans la boutique) j’ai ajouté ceci :

    var RecaptchaOptions = {
    custom_translations : {incorrect_try_again : « Merci de recommencer… »,},
    lang : ‘fr’,
    theme : ‘white’};

  16. 01/11/2012 à 18:50 | #16

    Si je me suis permis de poser une question c’est bien parce que j’ai passé cette étape déjà… Moi j’ai ceci dans mon formulaire:

    var RecaptchaOptions = {
    theme : ‘clean’,
    lang : ‘fr’,
    };

  17. 02/11/2012 à 13:06 | #17

    @julien Le thème est-il correctement appliqué ? Tu pourrais essayer deux choses : changer l’ordre des variables et mettre la langue avant le thème (pas d’ordre à priori, mais…), ou vérifier que dans code de la page où tu as placé le captcha il n’y a pas une autre variable « lang » déclarée par un autre programme.

  18. 02/11/2012 à 14:28 | #18

    oui le thème est appliqué, ce n’est pas celui de base.
    j’ai trouvé ça dans le doctype xml:lang= »en »
    il y a également des paramètre de langue dans le fichier phpmailer de sourceforge.
    Je m’étais fait aider et je ne m »y connais pas assez pour tenter des modifs sans support à vrai dire.

  19. 02/11/2012 à 15:38 | #19

    Il est donc fort possible que la déclaration lang =’en’ vienne « surcharger » celle qui tu as mis pour le captcha. Est-ce normal que ta page soit marquée en anglais ?
    Les pages du site joomla qui m’a servi d’exemple sont déclarées en français : xml:lang= »fr-fr » lang= »fr-fr ». Dans la gestion des langues de joomla, j’ai français et anglais, avec le français par defaut.

  20. 02/11/2012 à 21:22 | #20

    je ne sais pas si c’est normal. Peut ont changer la déclaration de langue sans changer la programmation du site? Par contre je me pose la question de savoir si nous nous comprenons bien. Moi ce que je cherche à obtenir , c’est les mots du captcha en français. Ils sont déjà très dur à lire pour un oeil exercé alors en plus en anglais… Pour les gens qui vont regarder mon site et qui n’ont pas forcément l’habitude des captchas et de l’anglais c’est ardu de s’en sortir sans référence de langue pour deviner le mot…

  21. 18/02/2013 à 12:02 | #21

    Bonjour,
    est-il possible d’avoir la meme chose pour virtuemart 2.0.18a
    merci

  22. 18/02/2013 à 12:22 | #22

    @rizzo à priori l’ajout de Captcha est indépendant de la version de VirtueMart, donc il « suffit » de modifier le bon fichier au bon endroit :)

  1. Pas encore de trackbacks