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