aspirine.org
Utilitaires pour sites web

Contact.php - Retour à l'accueil

conception du formulaire

Le formulaire ne doit en aucun cas contenir votre adresse email (c'est justement son intérêt). À moins que vous aimiez particulièrement recevoir du spam.
Voir un exemple de formulaire utilisant contact.php et la vérification en javascript.

L'encodage - Important !
La page web qui contient le formulaire doit absolument être encodée en ISO-8859 (Latin 1) et pas en UTF-8 (Unicode).

Les champs texte
Les éléments d'un formulaire sont principalement des champs texte. Ils ont un paramètre name="nom du champ". C'est ce paramètre qui sera envoyé par mail avec le texte entré par le visiteur :

Formulairecode HTML correspondantrésultat envoyé par mail
Votre adresse : Votre adresse : <input type="text" name="adresse" /> adresse = le texte tapé
Ce principe est valable pour tous les éléments de formulaire.

Adresse d'expéditeur et sujet

Cas des champs à choix multiples
Si vous utilisez des champs pouvant prendre de multiples valeurs, comme les cases à cocher (checkbox) ou les "select multiple", leur nom doit se terminer par deux crochets [] pour que toutes les valeurs cochées puissent être récupérées par le PHP. Sans ces crochets, seule la première valeur cochée par l'utilisateur sera transmise.
Il n'y a pas à le faire pour les boutons radio, puisqu'ils imposent un choix unique.
Pour tous ces champs, c'est l'attribut value="" qui est envoyé par mail et non le texte affiché à l'écran.

Pour les cases à cocher, il y a plusieurs manières de coder le même formulaire, selon le type de mail qu'on veut recevoir, une ligne par groupe avec la liste des cases cochées, ou une ligne différente par case :

Exemples
Formulairecode HTML correspondantrésultat
Au chocolat
À la fraise
<input type="checkbox" name="gout" value="choco" /> Au chocolat<br />
<input type="checkbox" name="gout" value="fraise" /> À la fraise<br />
Mauvais : même nom (name="gout") sans crochets.
Si plusieurs cases sont cochées, on ne reçoit dans le mail que le 1er goût coché.
Au chocolat
À la fraise
<input type="checkbox" name="gouts[]" value="choco" /> Au chocolat<br />
<input type="checkbox" name="gouts[]" value="fraise" /> À la fraise<br />
Bon : même nom (name="gouts[]") avec crochets.
Si plusieurs cases sont cochées, on reçoit :
gouts= avec la liste des goûts cochés.
Au chocolat
À la fraise
<input type="checkbox" name="choco" value="oui" /> Au chocolat<br />
<input type="checkbox" name="fraise" value="oui" /> À la fraise<br />
Bon : noms différents sans crochets, chaque case est indépendante des autres.
Si les deux cases sont cochées, on reçoit une ligne différente par case cochée :
choco=oui
fraise=oui

Vérification des données du formulaire.
De toute façon les données sont vérifiées par le script php avant de vous envoyer le mail.
Mais cette vérification n'intervient qu'après transfert des données de l'ordinateur du visiteur vers le serveur.
En option, il est possible d'effectuer une vérification immédiate dès que le visiteur clique sur le bouton "Envoyer", et de bloquer l'envoi du formulaire tant qu'il n'est pas complet.

Voir le script de vérification de formulaire.

type de vérification verification_formulaire.js (JavaScript)
vérification instantanée
contact.php (PHP)
vérification de sécurité
lieu sur la machine du visiteur sur le serveur de votre hébergeur
moment avant toute communication, au moment où le visiteur clique sur le bouton "Envoyer" à la réception des données sur le serveur, avant de transférer par mail.
adresse email vérification de la forme et confirmation par double saisie vérification de la forme
vérification de l'existence du nom de domaine
champs obligatoires précédés du signe * déclarés dans contact.config.php

Contact.php - Retour à l'accueil