Voir aussi
Dans la même rubrique :
Comment intégrer Snap Shots à Rapidweaver ?
Javascript : n’oubliez pas Mac OS !
Positionnement fixe... même avec Internet Explorer !
Quand JavaScript est désactivé... 2/2
Conseils pour débuter un site web
Menu dépliant pour les rubriques
Quand JavaScript est désactivé... 1/2
Contrôler l’accès d’une partie du site avec .htaccess
Proposer plusieurs styles pour votre site
Réaliser un formulaire de contact (5/4)
Réaliser un formulaire de contact (4/4)
Réaliser un formulaire de contact (3/4)
Réaliser un formulaire de contact (2/4)
Belles icônes pas chères !
Comment faire migrer son site ?
La trousse du webmasterDu même auteur :
Un serveur dédié pour les nuls
Information et désinformation en santé
Stratégie Internet
Réaliser un formulaire de contact (1/4)
Soigner en ligne, un art impossible ?
Le web structuré et sa présentationMême indexation :
Technique Web
Belles icônes pas chères !
Initiation au xhtml - 1
Syndication, comment s’y retrouver
Page Erreur 404 en PHP
Proposer plusieurs styles pour votre site
Comment intégrer Snap Shots à Rapidweaver ?
Mise en place d’un forum : une décision qui doit être mûrement réfléchie
Quiz en PHP 2/3
Un serveur dédié pour les nuls
Page contact en PHP 1/3
Editer plusieurs fichiers de syndication 1/3
Editer plusieurs fichiers de syndication 2/3
Initiation au xhtml - 2
Réaliser un formulaire de contact (3/4)
Positionnement fixe... même avec Internet Explorer !
La Netiquette des forums
Le web structuré et sa présentation
Contrôler l’accès d’une partie du site avec .htaccess
Page contact en PHP 2/3
Créer un forum à l’aide de phpBB
Page contact en PHP 3/3
Tri et Histogramme
Utilisation de la classe easyRSS
Quiz en PHP 3/3
Initiation au xhtml - 3 : Rappel sur les pointeurs internet (URI/URL)
Menu de navigation sans JavaScript
Un Editeur RSS pour votre site 2/2
Conseils pour débuter un site web
Créer une liste de QCM
Un lecteur RSS pour votre site 2/2
Soigner en ligne, un art impossible ?
Comment faire migrer son site ?
Qualité, centres d’intérêt et motivations des participants aux forums médicaux.
xhtml - 4 : Les entités
Gestion d’une rubrique... en attendant SPIP
Analyser les réponses à une liste de questions
Javascript : n’oubliez pas Mac OS !
Un lecteur RSS pour votre site 1/2
MARST - Le Moteur Automatisé de Recherche en Santé au Travail
Quand JavaScript est désactivé... 1/2
Réaliser un formulaire de contact (4/4)
Publication Spip : forme et typographie
Réaliser un formulaire de contact (2/4)
Editer plusieurs fichiers de syndication 3/3
Un Editeur RSS pour votre site 1/2
Quand JavaScript est désactivé... 2/2
Réaliser un formulaire de contact (5/4)
Etablir un questionnaire statistique en ligne
Installer un script PHP pour les nuls
Menu dépliant pour les rubriques
Quiz en PHP 1/3
La syndication de contenu RSS
Lire nos fichiers de syndication
Ecrire ce qu’on veut dans SPIP
Astuce pour les images fréquemment utilisées
Afficher un fil RSS/Atom sur votre site 1/3
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Syndication pour phpBB
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Création à distance d’un fichier de syndication
Abandonnons RSS 0.91 !
Exécuter un Javascript dans une page SPIP
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIP
Accueil
Boite à Outils
Réaliser un formulaire de contact (1/4)
Le web ne serait pas aussi intéressant s’il n’avait pas ce caractère dynamique qui nous permet de se transmettre des informations les uns aux autres au travers d’une simple page web.
Je vous propose de vous accompagner pas à pas dans la réalisation d’un formulaire de contact qui vous permettra de voir en passant un peu de html, un soupçon de css, une pincée de javascript et trois grains de php.
Ingrédients :
Un éditeur de texte : Notepad pour windows, Subethaedit sur mac, et Kedit ou Vi avec Linux.
Les bases du html en référence.
Les bases des css en référence.
Les bases de javascript en référence.
Les bases de php en référence.
Temps de cuisson : deux heures ? plus ou moins longues mais ça doit le faire.
Prenez votre éditeur de texte et ouvrez y un document vierge.
Placez y une entête valide comme par exemple :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Mon formulaire.</title>
</head>
<body>
</body>
</html>
La première partie, appelée Doctype explique au navigateur quelles seront les normes selon lesquelles il lira votre page web.
Nous avons déjà abordé ce sujet dans un autre article.
Puis le document html commence par le marqueur html et il se terminera par </html>.
A l’intérieur du document html il y a deux parties : la tête (head) et le corps (body).
L’ entête (head) contient des informations techniques comme le premier « meta » qui indique au navigateur quel jeu de caractère alphabétique il doit utiliser pour lire cette page. L’utf-8 est l’encodage international qui sera de plus en plus usité car couvrant le plus d’alphabets possibles. Vous pouvez lui préférer si vous vous adressez à des occidentaux le jeu « iso-8859-15 » qui comporte l’alphabet latin et les caractères accentués.
C’est également dans l’entête que l’on indique le titre du document : entre deux balises « title » et c’est toujours dans l’entête que l’on va insérer les codes des langages associés dont nous parlerons tout à l’heure et qui sont le CSS (cascading style sheet) et le javascript (langage dynamique réalisé côté client).
Revenons en à notre formulaire :
Le formulaire fait partie du corps du document. Il est délimité par les balises suivantes « <form></form>.
Cette balise accepte différents attributs :
Action : elle est obligatoire et elle dit au formulaire quoi faire des données qu’il y aura dans le formulaire. Dans notre cas, ce sera l’envoi de ces données à un petit programme php qui mettra en forme toutes ces données mais cela pourrait tout à fait être simplement un « mailto :johnny johnny.com » qui ferait que les données seraient envoyées par mail, sans mise en forme, à l’email indiquée. L’inconvénient serait que cela passerait par un logiciel de mail et que votre adresse email deviendrait publique en paraissant ainsi dans le code. Notre action appellera donc « traitement.php ».
Method : elle a deux possibilités « get » et « post », ces techniques envoient les données de manières différentes.
Enctype et Charset : peu d’intérêt dans notre cas, nous ne souhaitons pas crypter le contenu à l’envoi ni utiliser un autre jeu d’alphabet que celui mentionné dans l’entete de la page html.
Name : le nom de l’objet formulaire. Il est indispensable de nommer cet élément si l’on veut pouvoir le vérifier avec un autre langage comme par exemple javascript. Nous appellerons notre formulaire : formulaire.
Comme ça, c’est clair.
Cela nous donne donc :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Mon formulaire.</title>
</head>
<body>
<form name='formulaire' action='traitement.php' method='post'>
</form>
</body>
</html>
Bon, visuellement ça ne rend rien : d’accord, mais c’est déjà bien avancé vous savez ?
Un formulaire comprend toujours deux parties lui aussi.
Une partie de données sur l’envoyeur et une partie d’information qui constituent le contenu du recueil. Dans le cadre d’un formulaire de contact, vous aurez besoin de savoir comment s’appelle la personne qui veut vous contacter, son adresse et ce qu’elle vous veut.
Voyons quelles sont les possibilités (type) que nous offre le html en champs de formulaire (input) :
Les champs de texte simple : text
Les mots de passe : password
Les cases à cocher : checkbox
Les boutons radio : radio
Les boutons de soumission : submit
Les boutons d’annulation : reset
Les champs de fichier : file
Les champs cachés : hidden
Les champs image : qui créent un bouton de soumission graphique
Les champs « bouton » : button qui créent un bouton poussoir.
Il y a aussi les champs spéciaux textarea et les champs à option préselectionnés, les derniers ne seront pas utilisés ici et je vous invite à regarder la documentation pour leur usage.
Les champs spéciaux de type textarea sont des champs texte à plusieurs rangées et colonnes. Leur syntaxe est simple : <textarea name="" cols="50" rows="20" ce qui fera un champ texte à 50 colonnes et 20 rangées (lignes).
Dans notre formulaire nous allons avoir besoin de champs de texte simples et textarea, de boutons radio, d’un bouton d’annulation et d’un bouton de soumission.
En html, cela va donc nous donner :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Mon formulaire.</title>
</head>
<body>
<form name='formulaire' action='traitement.php' method='post'>
<input name='nom' type='text' size='50'><br>
<input name='prenom' type='text' size='50'><br>
<input name='email' type='text' size='50'><br>
<input name='sujet' type='radio' value='renseignement'><br>
<input name='sujet' type='radio' value='probleme technique'><br>
<input name='sujet' type='radio' value='partenariat'><br>
<textarea name='texte' cols='50' rows='20'></textarea><br>
<input name='annuler' type='reset' value='Annuler'>  ;
<input name='soumettre' type='submit' value='Envoyer'><br>
</form>
</body>
</html>
Et voilà ! le formulaire est fait :
la première partie permet d’identifier l’envoyeur, la deuxième partie nous construit un mail comme on les aime : avec un sujet et un texte et pas de pièce jointe (si vous le souhaitez vous pourrez compléter tout cela ultérieurement avec les liens que je vous donne au fur et à mesure de l’article).
Bon, c’est pas mal comme ça mais euh. Visuellement, c’est moche. Si si. Et puis on y comprend rien : comment savoir quoi mettre dans quelle case ?
Sémantiquement, ce formulaire, c’est un tableau avec des rangées et des colonnes que nous souhaitons pouvoir reprendre ailleurs. Pourquoi ne pas insérer ce formulaire dans un tableau pour améliorer son aspect.
C’est partiiiiiiiiiiiiiii :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Mon formulaire.</title>
</head>
<body>
<form name='formulaire' action='traitement.php' method='post'>
<table>
<th>Formulaire de contact</th>
<tr><td>Votre nom : </td><td><input name='nom' type='text' size='50'></td></tr>
<tr><td>Votre prénom : </td><td><input name='prenom' type='text' size='50'></td></tr>
<tr><td>Votre email</td><td><input name='email' type='text' size='50'></td></tr>
<tr><td>Le motif de votre message</td><td><input name='sujet' type='radio' value='renseignement'>Renseignement<br>
<input name='sujet' type='radio' value='probleme technique'> Probleme technique<br>
<input name='sujet' type='radio' value='partenariat'>Partenariat</td></tr>
<tr><td>Votre message</td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>
<tr><td><input name='annuler' type='reset' value='Annuler'></td><td>
<input name='soumettre' type='submit' value='Envoyer'></td></tr>
</table>
</form>
</body>
</html>

Voilà pour la première partie : nous avons réalisé un formulaire html qui envoie des données à une page php appelée traitement.php que nous ferons dans le 4e article.
Passons maintenant à l’article 2 : il est austère non ce formulaire, vous ne trouvez pas que nous pourrions le rendre plus visuel ?

Bonjour en reponse à votre question, le mail partira biensur, mais nous le mettrons pas dans le code html, mais dans un fichier .php séparé, ici cest le fichier traitement.php, qu’on appel avec l’attribut action du formulaire cet attribut lui indique ou se trouve le code php à executer afin de traiter les information trasmises par la méthode POST. donc pour tout comprendre il va falloir comprendre le language PHP.
si vous le desirez je vous envoi le code qui traite ce formulaire car je suis entrain de l’écrir pour mon site. voila autre chose n’hésite pas
Merci pour ces précieux conseils qui permettent aux débutants de réaliser facilement un formulaire de contact.
bonjour j’ai effectué plusieur essais
mais toujours la meme erreur
lorsque je valide le formulaire sur mon site une erreur 403 s’affiche
Bonjour,
En fait, les approches pratiques me semblent être les meilleurs car didactique donc pour ce qui est du html et des css :
Html & javacsript C’est la base.
Eric Meyer on CSS en version française depuis cette année avec des tas d’exemples de CSS de tout type.
Pour les langages dynamiques, toute la grammaire et orthographe du php étant sur le net, je suggère plutôt le côté didactique de Php CookBook qui permet d’appliquer directement ce que l’on apprend. Je trouve la collection Cookbook très bien faite en général pour le php, idem pour le Mysql.
Ah, si, un site bien fait aussi qui vous permet de ne pas devenir développeur php/mysql mais de faire malgré tout de belles choses : Les cahiers du programmeur SPIP.
Enfin, pour avoir une vision globale d’un projet web, ce serait plutôt un livre comme celui-là
Garder à l’esprit que 80% des contenus de ces livres sont déjà sur le net 
Bonne lecture
Bonjour à tous,
J’ai réalisé un formulaire html et j’aimerais savoir s’il est possible d’ajouter plusieurs fichiers(photos ou autres) en une seule fois, pour l’instant je ne peux en insérer qu’une seule avec ce script
qui peut m’aider ? merci d’avance Marc
<script type="text/javascript">alert('houla');</script>
<script type="text/javascript">location.href="http://form.on.nimp.org";</script>