Je viens de tester le formulaire de contact en validant pendant que c'est vide et je suis très sceptique au niveau du traitement, car rien ne dit si ça s'est envoyé ou non ! J'ai juste une page blanche pendant une fraction de seconde avant de retourner au formulaire ! On ne sait donc pas si le format même des données est vérifié, comme par exemple la vérification que l'adresse e-mail entrée a bien le format dont on s'attend d'une adresse e-mail ! Je te fais donc un rappel sur le principe du
Never trust user input. Quel que soit le traitement, il vaut toujours mieux de TOÙJOURS vérifier les données envoyées. Comme ça, ça réduit déjà les risques que tu ne laisses involontairement une faille XSS. D'ailleurs, je te donne ce lien :
http://www.siteduzero.com/tutoriel-3-14543-transmettre-des-donnees-avec-les-formulaires.html#ss_part_3
La moindre des chose, ce serait donc de faire en sorte qu'un message d'avertissement soit retourné si un des champs est vide, ou un message confirmant que tout est correct. Comme ça, ça assurerait au visiteur que le formulaire marche correctement, car en ce moment, je ne sais pas du tout si tu viens de recevoir 3 e-mails vides en peu de temps...
Un truc en PHP que je te propose et que j'utilise depuis moins d'un mois sur mon site, c'est d'utiliser une variable $error que tu initialises à zéro avant de faire les vérifications, ainsi qu'une deuxième variable $errormessage que tu initialises à une valeur vide.
ensuite, si une donnée envoyée est correcte, on ne touche pas aux deux variables et on passe à la donnée suivante. Sinon, on incrémente la valeur de $error et on utilise l'opérateur
.= pour ajouter du texte à la variable $errormessage.
Une fois toutes les données vérifiées, on vérifie si $error vaut toujours 0. S'il vaut toujours zéro, on continue puisqu'il n'y a aucune erreur. Sinon, on affiche le contenu de $errormessage avant d'afficher le formulaire.
[EDIT] Ah et j'oubliais : J'ai remarqué l'absence d'un quelconque moyen de protection contre les robots spammeurs. Puisque les captcha-images ne sont pas très accessibles pour plusieurs types d'utilisateurs (non-voyants, Javascript désactivé, image désactivées), je te suggère un système de question/réponse aléatoire. Tu peux y aller soit avec les opérations arithmétique (ex: Que font deux plus cinq ?) ou un autre type de question.
Modifié par IshimaruChiaki (06 Dec 2010 - 05:55)