Formulaire de contact sous Thelia.

Accueil / Articles / Formulaire de contact sous Thelia.

Article publié le 6 avril 2018  Mot(s) clé :   Thélia  Enregistrer au format PDF   Version PDF

Rapide étude que je mets par écrit, car j’ai travaillé sur cette question en 2012, et je ne me souviens plus de rien. On trouve un peu de documentation sur la question, mais elle me semble succincte.

Pour un site de e-commerce sous Thélia, il est logique de mettre en place une page de contact, à partir de laquelle les internautes peuvent vous écrire. Pour se faire, deux possibilités s’offrent à vous : indiquer votre adresse électronique, que l’internaute copie dans un mail qu’il vous envoie, ou mettre en place un formulaire de contact. Pour éviter que votre adresse ne soit spammée, je préfère la seconde solution.

Formulaire de contact en PHP

Vous pouvez mettre en place un formulaire de contact en php, comme pour n’importe quel site web. Un binôme page HTML/page PHP : dans votre page HTML contact.html, vous insérez un formulaire HTML qui appelle la page PHP dans laquelle se trouve le traitement du formulaire.

Par exemple, vous avez ici une page qui vous explique la méthode à suivre pour créer un formulaire de contact
J’avoue que je ne sais pas pourquoi je n’ai pas pensé à cette solution dès le début…

Plugin contact pour Thélia

Pour Thélia, il existe un plugin « tout fait », qui va vous proposer un peu plus que le simple formulaire du paragraphe précédent. Vous pouvez définir les champs obligatoires, vous êtes redirigés vers une page d’erreur en cas de problème. C’est peut-être pour cela que j’ai choisi cette solution.
Vous téléchargez et activez le plugin Contact comme tous les autres plugin Thélia

Configuration :

La documentation est bien faite. En particulier, on vous précise dans la documentation ce qu’il faut faire pour rendre certains champs de formulaires obligatoires :

On peut choisir quels champs sont obligatoires en les renseignant en début de template.
#PARAM_FOND_obligenom=1
#PARAM_FOND_obligeprenom=1
#PARAM_FOND_obligetel=1
#PARAM_FOND_obligesujet=1
#PARAM_FOND_obligemessage=1

Également, dans les paramètres de votre site Thélia, le plugin met en place une adresse de contact à laquelle le message de contact est envoyé

Enfin, vous pouvez paramétrer le courrier envoyé.

Un modèle de formulaire de contact vous est fourni.

Problèmes rencontrés.

Le principal problème que j’ai rencontré est le suivant : une fois le formulaire envoyé, ma page est redirigée vers la page de connexion de mon site.
-  J’aurais aimé que l’on puisse afficher un message d’accusée réception
-  J’aurais aimé que l’on revienne sur la page de formulaire.
Impossible de trouver où se faisait cette redirection
-  Tous les messages envoyés depuis le site sont inscrits en base de données.
Ce qui impose à tout prix de mettre en place un système de captcha, pour éviter que vous soyez spammés par des messages intempestifs de robots qui cherchent à inscrire leur site web dans des bases de données. (que ce soit pour obtenir du lien, ou pour d’autres actions dont vous devez vous prémunir)

Plugin de captcha pour Thélia

Il existe bien un plugin de captcha pour Thélia. Mais je pense que c’est l’exemple typique du plugin mal documenté. 2 phrases, et débrouillez-vous.

Insérez ce code à l’emplacement prévu dans un de vos plugins

include_once(realpath(dirname(__FILE__))."/../captcha/Captcha.class.php") ;
$captcha->captcha_img()

On peut comprendre que la première ligne se met dans la page Contact.class.php de mon plugin contact, mais la seconde variable ? A quoi fait-elle référence ? Où doit-on l’écrire ?
Après quelques tests, je laisse tomber.

Plugin Formulaires magiques pour Thélia

Comme je n’ai pas réglé mon problème de Captcha pour mon formulaire de contact, je change de plugin et je mets en place Formulaires magiques pour Thélia, qui manifestement fonctionne différemment que le précédent. De plus, il est livré avec un Captcha simple, un peu ancien, mais qui a le mérite d’exister.
Je mets en place le plugin, je change ma page contact.html, et j’obtiens ce que je cherche :
-  après l’envoie du formulaire, la page affiche un message de remerciement que je peux personnaliser.
-  Il y a un captcha qui protège le formulaire.
-  Les messages ne sont pas écrits en base de donnée, ce qu est pour moi une sécurité importante.

Voilà où j’en suis dans mon utilisation d’un formulaire de contact. Je vais tester celui-ci pendant quelques temps, surtout pour voir si les robots sont déroutés…

[EDIT] Une heure plus tard, j’avais déjà reçu deux spam. La captcha proposé n’est pas très efficace. A suivre.

Ces articles peuvent vous intéresser