Title: Formulaires HTML/PHP
 1Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltFORMgt
ACTION
ENCTYPE
METHOD
La balise ltFORMgt 
 Les balises ltFORMgt et lt/FORMgt définissent 
l'espace du formulaire. Elles possèdent trois 
attributs - ACTION qui définit vers quelle URL 
envoyer le contenu du formulaire - METHOD qui 
définit le mode de transmission GET ou POST - 
ENCTYPE qui définit le type de contenu chaîne ou 
fichier 
AULAS - 2007 
 2Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltFORMgt
ACTION
ENCTYPE
METHOD
ACTION  
 La propriété ACTION définit vers quelle URL 
(Universal Resource Location) envoyer le contenu 
du formulaire. Ex  ltFORM ACTION"http//www.mo
nsite.fr/traitement.php"gt lt/FORMgt Pour renvoyer 
le formulaire à lui même, on écrira action"" 
(voire on écrira rien du tout).
AULAS - 2007 
 3Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltFORMgt
ACTION
ENCTYPE
METHOD
METHOD  
 La propriété METHOD définit le mode de 
transmission, GET ou POST - GET  une chaîne est 
placée à la fin de l'URL après un caractère " ? " 
sous forme d'associations nomChampval où 
nomChamp est le nom du champ dans le formulaire 
et val la valeur saisie. Nb le caractère "  " 
remplace les espaces et le caractère "  " sépare 
les associations nomChampval. - POST  la chaîne 
est transmise séparément de l'URL. Ex  ltFORM 
ACTION"http//www.monsite.fr/traitement.php" 
METHOD"GET"gt lt/FORMgt
AULAS - 2007 
 4Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltFORMgt
ACTION
ENCTYPE
METHOD
ENCTYPE  
 La propriété ENCTYPE définit le type d'encodage 
des données du formulaire qui doit être utilisé 
pour la transmission au serveur - 
application/x-www-form-urlencoded C'est l'option 
par défaut qui prévoit que les champs du 
formulaire sont transmis sous la forme d'une 
liste de paires nomvaleur. - multipart/form-data
 Cette option doit être utilisée pour transmettre 
des fichiers.
AULAS - 2007 
 5Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
La balise ltINPUTgt  
 A deux exceptions près, la balise ltINPUTgt permet 
de définir toutes les commandes d'un formulaire. 
 Les éléments communs à toutes les balises 
INPUT - balise ouvrante uniquement - 
l'attributs NAME - et l'attribut TYPE  
 Ex Titre  ltINPUT TYPE"text" NAME"titre"gt 
AULAS - 2007 
 6Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Les différents TYPE de commandes 
 L'attribut TYPE permet de définir les différents 
type de commande qui sont, en vrac  - 
TEXT pour entrer du texte - PASSWORD pour entrer 
du texte masqué (mot de passe par ex.) - 
HIDDEN pour transmettre des infos cachées - 
CHECKBOX pour créer des cases à cocher - 
RADIO pour créer des cases à cocher exclusives - 
SUBMIT pour créer un bouton qui soumet le 
formulaire - RESET pour réinitialiser un 
formulaire - IMAGE pour fabriquer un joli 
bouton - FILE pour transférer des fichiers
AULAS - 2007 
 7Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Le type TEXT
 La commande de type TEXT fournit à l'utilisateur 
l'interface suivante  On peut en contrôler 
la taille à l'aide de l'attribut SIZE suivi du 
nombre de caractères visibles dans la fenêtre. On 
peut également contrôler la longueur maximum 
autorisée à être entrée dans cette fenêtre à 
l'aide de l'attribut MAXLENGTH. Ex Nom  
ltINPUT TYPE"text" NAME"nom" SIZE"20"gt Prénom 
 ltINPUT TYPE"text" NAME"prenom" SIZE"20"gt 
AULAS - 2007 
 8Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Le type PASSWORD
 La commande de type PASSWORD est identique à la 
commande de type TEXT sauf que le texte entré 
n'apparaît pas à l'écran (les lettres dont 
remplacées par des )  Ex Ce type sert 
principalement à la saisie de mot de passe. 
AULAS - 2007 
 9Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Le type HIDDEN
 La commande de type HIDDEN n'est pas visible. 
Elle sert principalement à définir un paramètre 
dont la valeur est fixée, et à passer ce 
paramètre en même temps que ceux saisis par 
l'utilisateur. Ex ltINPUT TYPE"hidden" 
NAME"nomdepage" VALUE"ex3"gt Attention cette 
commande est cachée mais pas secrète il suffit à 
l'utilisateur de consulter le code source pour la 
voir. 
AULAS - 2007 
 10Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Le type CHECKBOX
 Ce type permet de créer des cases à cocher 
associées à des valeurs. En donnant le même 
attribut NAME à plusieurs cases à cocher, on 
indique au navigateur que ces champs doivent être 
groupés dans la fenêtre d'affichage. 
 Contrairement aux commandes TEXT, les valeurs 
(attribut VALUE) ne sont pas visibles et doivent 
être définies à l'intérieur de la balise INPUT  
 Ex Choléra  ltINPUT TYPE"checkbox" 
NAME"maladie" VALUE"C"gt Tuberculose  ltINPUT 
TYPE"checkbox" NAME"maladie" 
VALUE"T"gt Oreillons  ltINPUT TYPE"checkbox" 
NAME"maladie" VALUE"O" CHECKEDgt Autres  
ltINPUT TYPE"checkbox" NAME"maladie" 
VALUE"A"gt 
AULAS - 2007 
 11Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Le type RADIO
 La commande RADIO fonctionne comme CHECKBOX mais 
n'autorise pas un choix multiple. Le premier 
choix est sélectionné par défaut. Pour 
présélectionner un autre choix, vous pouvez 
utiliser l'attribut CHECKED  Ex Oui ltINPUT 
TYPE"radio" NAME"reponse" VALUE"O"gt Non ltINPUT 
TYPE"radio" NAME"reponse" VALUE"N" CHECKEDgt 
AULAS - 2007 
 12Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Les types SUBMIT, RESET et IMAGE
 La commande SUBMIT correspond à un bouton qui 
valide la saisie et envoie le contenu du 
formulaire au serveur. L'attribut VALUE permet 
de définir le texte affiché sur le bouton. Un 
commande complémentaire RESET, fonctionne sur le 
même schéma que SUBMIT et permet de réinitialiser 
le formulaire. Ex ltINPUT TYPE"submit" 
VALUE"Valider"gt ltINPUT TYPE"reset" VALUE"Tout 
effacer"gt  
AULAS - 2007 
 13Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Les types SUBMIT, RESET et IMAGE
 Pour remplacer un bouton de type SUBMIT par une 
image, vous disposez de la commande IMAGE  Ex 
 ltINPUT TYPE"image" SRC"bouton.gif"gt 
AULAS - 2007 
 14Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltINPUTgt
PASSWORD
FILE
TEXT
HIDDEN
CHECKBOX
RADIO
SUBMIT
Le type FILE
 La commande de type FILE permet de transmettre 
des fichiers par l'intermédiaire du 
formulaire. Le champ doit alors contenir le 
chemin d'accès au fichier sur l'ordinateur du 
client. Ex ltINPUT TYPE"file" SIZE"40" 
NAME"telFichier"gt Une astuce permet de limiter 
la taille maximale du fichier à transmettre en 
utilisant une commande HIDDEN portant le nom 
MAX_FILE_SIZE et ayant pour valeur le nombre 
d'octets maximal. Ex ltINPUT TYPE"hidden" 
NAME"MAX_FILE_SIZE" VALUE"52000"gt
AULAS - 2007 
 15Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltSELECTgt
ltTEXTAREAgt
La commande SELECT
 Cette commande est assez proche des champs 
CHECKBOX et RADIO  Il permet à l'utilisateur de 
choisir un ou plusieurs éléments dans un menu 
déroulant. La balise ltSELECTgt est un conteneur 
dans lequel on doit énumérer, avec les balises 
ltOPTIONgt tous les choix disponibles. Ces balises 
ltOPTIONgt ont elles-même un attribut VALUE qui 
indique la valeur à envoyer au serveur lorsque 
l'option a été sélectionné. Elles peuvent 
utiliser l'attribut SELECTED pour sélectionner 
une valeur par défaut Ex  ltSELECTgt ltOPTGROUP 
LABEL"Urgencesgt ltOPTION VALUE"A"gtBroca 
ltOPTION VALUE"B" SELECTEDgtLariboisière 
lt/OPTGROUPgt lt/SELECTgt
AULAS - 2007 
 16Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltSELECTgt
ltTEXTAREAgt
La commande SELECT
 La balise SELECT dispose d'un attribut SIZE qui 
définit le nombre de lignes visibles en même 
temps dans le menu déroulant. L'attribut MULTIPLE 
(sans valeur associée) autorise à sélectionner 
plusieurs valeurs dans la liste  Ex  ltSELECT 
NAME "lieu" SIZE"3" MULTIPLEgt ltOPTGROUP 
LABEL"Urgencesgt ltOPTION VALUE"A"gtBroca 
ltOPTION VALUE"B" SELECTEDgtLariboisière 
lt/OPTGROUPgt lt/SELECTgt
AULAS - 2007 
 17Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltSELECTgt
ltTEXTAREAgt
La commande TEXTAREA
 La balise TEXTAREA fournit à l'utilisateur une 
zone dans laquelle il peut rentrer du texte. 
 Cette commande est encadrée par une balise 
ouvrante et fermante. Elle possède les 
attributs suivants - NAME - ROWS  indique la 
hauteur de la zone de texte en nombre de ligne - 
COLS indique la largeur de la zone de texte (en 
nombre de caractères). 
AULAS - 2007 
 18Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
ltSELECTgt
ltTEXTAREAgt
La commande TEXTAREA
 Ex  ltTEXTAREA NAME"commentaire" ROWS"3" 
COLS"60"gt Je peux placer ici du texte par 
défaut. lt/TEXTAREAgt 
AULAS - 2007 
 19Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
La balise ltFIELDSETgt
 La balise ltFIELDSETgt est uniquement décorative  
elle permet d'entourer un groupe de commande par 
un léger filet gris. On peut donner un titre à 
ce groupe à l'aide de la balise 
ltLEGENDgt. Ex ltFIELDSETgt ltLEGENDgtDonnées 
personnelleslt/LEGENDgt Nom  ltINPUT TYPE"text" 
NAME"nom" SIZE"20"gt Prénom  ltINPUT 
TYPE"text" NAME"prenom" SIZE"20"gt Id  
ltINPUT TYPE"password" NAME"identifiant" 
SIZE"20"gt lt/FIELDSETgt 
AULAS - 2007 
 20Formulaires HTML/PHP
Définition
Commandes
Commandes particulières
Décoration
Tester les variables globales
 foreach (GLOBALS as clefgtvaleur) print 
"clef  valeur" foreach (_SERVER as 
clefgtvaleur) print "clef  
valeur" print _SERVER'PHP_SELF' foreach 
(_GET as clefgtvaleur) print "clef  
valeur" Nb phpinfo() renvoie un contenu mis 
en forme des différentes variables globales
AULAS - 2007 
 21L'âge du capitaine
lt?php ?gt ltHTMLgt ltBODYgt ltH3gtTrouvez l'âge 
du capitaine!lt/H3gt ltFORM ACTION"lt?php 
_SERVER"PHP_SELF"?gt" METHOD"GET"gt Tentez 
votre chance  ltINPUT TYPE"text" NAME"age" 
SIZE"20" MAXLENGTH"3"gt lt/FORMgt lt/BODYgt lt/HTML
gt
AULAS - 2007 
 22L'âge du capitaine
lt?php if (!empty(_GET)) // ou 
isset(_GET'age')   ?gt ltHTMLgt ltBODYgt ltH3gt
Trouvez l'âge du capitaine!lt/H3gt ltFORM 
ACTION"lt?php _SERVER"PHP_SELF"?gt" 
METHOD"GET"gt Tentez votre chance  ltINPUT 
TYPE"text" NAME"age" SIZE"20" MAXLENGTH"3"gt 
 lt/FORMgt lt/BODYgt lt/HTMLgt
AULAS - 2007 
 23L'âge du capitaine
lt?php message  "" if (!empty(_GET)) // ou 
isset(_GET'age')  message  "Vous avez 
dit  "._GET'age'." ans.ltBRgt"  ?gt ltHTMLgt ltBO
DYgt ltH3gtTrouvez l'âge du capitaine!lt/H3gt lt? print 
message ?gt ltFORM ACTION"lt?php 
_SERVER"PHP_SELF"?gt" METHOD"GET"gt Tentez 
votre chance  ltINPUT TYPE"text" NAME"age" 
SIZE"20" MAXLENGTH"3"gt lt/FORMgt lt/BODYgt lt/HTML
gt
AULAS - 2007 
 24L'âge du capitaine
lt?php age_a_trouver  34 message  "" if 
(!empty(_GET)) // ou isset(_GET'age')  
message  "Vous avez dit  "._GET'age'." 
ans.ltBRgt"  ?gt
AULAS - 2007 
 25L'âge du capitaine
lt?php age_a_trouver  34 message  "" if 
(!empty(_GET)) // ou isset(_GET'age')  
message  "Vous avez dit  "._GET'age'." 
ans.ltBRgt" if (_GET'age'gtage_a_trouver) 
message . "Il est moins vieux que cela 
voyons!ltBRgt" elseif (_GET'age'ltage_a_trouve
r) message . "Vous êtes flatteur mais il est 
plus âgé!ltBRgt"  ?gt
AULAS - 2007 
 26L'âge du capitaine
lt?php age_a_trouver  34 message  "" if 
(!empty(_GET)) // ou isset(_GET'age')  
message  "Vous avez dit  "._GET'age'." 
ans.ltBRgt" if (_GET'age'gtage_a_trouver) 
message . "Il est moins vieux que cela 
voyons!ltBRgt" elseif (_GET'age'ltage_a_trouve
r) message . "Vous êtes flatteur mais il est 
plus âgé!ltBRgt" else message . "Bingo! 
Vous avez trouvé l'âge du capitaine!ltBRgt"  ?gt
AULAS - 2007 
 27L'âge du capitaine
 ?gtltHTMLgt ltBODYgt ltH3gtTrouvez l'âge du 
capitaine!lt/H3gt lt? print message ?gt ltFORM 
ACTION"lt?php _SERVER"PHP_SELF"?gt" 
METHOD"GET"gt Tentez votre chance  ltINPUT 
TYPE"text" NAME"age" SIZE"20" MAXLENGTH"3"gt 
ltINPUT TYPE"hidden" NAME"nb_tentative" 
VALUE"lt? nb_tentative ?gt"gt lt/FORMgt lt/BODYgt lt/
HTMLgt
AULAS - 2007 
 28L'âge du capitaine
lt?php age_a_trouver  34 message  "" 
nb_tentative  (isset(_GET'nb_tentative')) ? 
_GET'nb_tentative'  0  if (!empty(_GET)) 
// ou isset(_GET'age')  message  "Vous 
avez dit  "._GET'age'." ans.ltBRgt" if 
(_GET'age'gtage_a_trouver) message . "Il 
est moins vieux que cela voyons!ltBRgt" elseif 
(_GET'age'ltage_a_trouver) message . 
"Vous êtes flatteur mais il est plus âgé!ltBRgt" 
else message . "Bingo! Vous avez trouvé 
l'âge du capitaine!ltBRgt"  ?gt 
AULAS - 2007 
 29L'âge du capitaine
lt?php age_a_trouver  34 message  "" 
nb_tentative  (isset(_GET'nb_tentative')) ? 
_GET'nb_tentative'  0  if (!empty(_GET)) 
// ou isset(_GET'age')  message  "Vous 
avez dit  "._GET'age'." ans.ltBRgt" if 
(_GET'age'gtage_a_trouver) message . "Il 
est moins vieux que cela voyons!ltBRgt" elseif 
(_GET'age'ltage_a_trouver) message . 
"Vous êtes flatteur mais il est plus âgé!ltBRgt" 
else  message . "Bingo! Vous avez trouvé 
l'âge du capitaine!ltBRgt" message . "Il 
vous a tout de même fallu nb_tentative 
tentatives!ltBRgt"   ?gt 
AULAS - 2007