Vous êtes sur la page 1sur 22

Cration et gestion de site dynamique (PHP / MySQL)

PHP & Formulaires


Dernire mise jours par M. FAGROUD : Dccembre 2007

Le contenu de ce document est soumis la Licence de Documentation Libre GNU Free Documentation License

Les formulaires
Ce sont des zones dans une page Web qui permettent de rcuprer des donnes auprs des visiteurs. Ils peuvent ainsi crer une certaine interactivit avec les visiteurs :

Questionnaire Sondage

Renseignements personnels (adresse, email)


Zone prive (mot de passe) Affichage de texte cibl Menus, choix de rubriques, choix de liens Zone de texte pour forums, blogs, livre d'or

2/21

Des exemples de formulaires


Zone de saisie

Boutons Boutons radio (choix unique) Zone de saisie simple Liste droulante

Zone de saisie lignes multiples

Cases cocher

3/21

Des exemples de formulaires

4/21

Principe des formulaires (I)


1. Mettre disposition du visiteur des zones de textes, des choix, des informations Formulaire proprement parler Soit envois d'un email soit une autre page web sur le serveur Script dynamique Exemple : PHP

2.

Rcuprer les donnes qui sont fournies par le visiteur

3.

Valider, traiter, classer ces donnes

4.

Affichage sur une page Les stocker, les afficher ou les rutiliser dans Bases de donnes Exemple : SQL un autre formulaire

5/21

Principe des formulaires (II)

Base de donnes

Bonjour toto Script de vrification Voici la partie prive du site.

6/21

Structure HTML
<form> et </form> : dlimitent un formulaire. La prsence de la balise de fin est primordiale !

Les balises html seront interprtes normalement l'intrieur d'un formulaire (texte, image, style...)

Exemple : <form><strong>Mon Formulaire</strong></form> Affichera normalement "Mon Formulaire" en gras.

C'est dans cette zone (entre les balises <form></form>) que l'on placera les balises spcifiques aux formulaires : champ de texte, case cocher, bouton

Les donnes comprises dans cette zone pourront tre rcupres.

7/21

Attribut METHOD
Lorsquun client veut retourner des donnes au serveur Web, le navigateur utilise la procdure de transmission de formulaire. Cette procdure est contrle par 2 attributs de la balise <FORM> : METHOD et ACTION.

- Lattribut METHOD dtermine la manire avec laquelle les donnes sont transmises au serveur. Il peut prendre les valeurs GET et POST.
o POST demande lexplorateur dempaqueter toutes les donnes et de les transmettre au serveur. Les donnes ne sont pas visibles par l'internaute au moment de l'envoi o GET, quant lui, envoie les donnes en tant que partie intgrale de lURL pour la page cible. De ce fait, les donnes sont visibles dans l'URL de la page cible. Elles se prsentent ainsi :
http://www.enameknes.ac.ma/nouv_page.php?lst_valeur=Fahmi&txt_nom=Ali

On utilisera souvent la mthode POST avec PHP


8/21

Attribut ACTION
-Lattribut ACTION dsigne l'adresse du script qui va traiter les donnes ou l'email.. Exemple avec un script en PHP : action="mon_script.php" ou action="http://www.refer.org.ma/php/test.php" pour un envois par mail : action=mailto:email@domaine.com

attribut n'est pas obligatoire. Dans ce cas, la page en cours est re-excute.

La syntaxe serait alors


<FORM METHOD="POST" ACTION="test.php"> ... </FORM>

9/21

Les objets d'un formulaire (I)


On insre un zone de texte en utilisant la balise : <input type="text" /> Elle possde des attributs utiles pour le traitement des donnes : name : c'est le nom de la zone de texte. Choisissez-le bien, car c'est lui qui va produire une variable. Chaque nom doit tre unique. value : (facultative) c'est ce que contient la zone de texte au dpart. Par dfaut, la zone de texte est vide. Mais il peut tre trs pratique de pr-remplir le champ <input type ="text" name="utilisateur" value = "Fagroud" /> size = donne la largeur du champ en nombre de caractres (20 par dfaut).

maxlength = dfinit le nombre maximal de caractres pouvant tre taps dans un champ.
10/21

Les objets d'un formulaire (II)


Bouton Soumettre aussi appel "submit", il permet de valider le formulaire et d'envoyer son contenu au serveur. Le texte affich est dans l'attribut "value" <input type = "submit" name = bt_submit value="Valider"

/>
Valider

Bouton Rtablir aussi appel "reset", il permet de rinitialiser tous les champs du formulaire avec leur valeur par dfaut. Le texte affich est dans l'attribut "value"
<input type="reset" name="bt_reset" value="Rtablir" />

11/21

Les objets d'un formulaire (III)


<select> et </select> : cre une liste droulante. Attributs : name, size (spcifie le nombre d'lments visibles) <option> et </option> : ajoute un lment la liste droulante cre avec un select. On lui donne une valeur grce son attribut "value". <select name="niveau" (size = 3)> <option value="excellent">Excellent</option> <option value="bon">Bon</option> <option value="moyen">Moyen</option> <option value="faible">Faible</option> <option value="nul">Pitoyable</option> </select>

12/21

Les objets d'un formulaire (IV)


Normalement c'est la premire option qui est choisie par dfaut. Il est possible de prciser quelle autre option serait slectionne en utilisant l'attribut Selected. <option value="excellent" selected="selected"> Excellent </option> Par dfaut, une seule option peut tre choisie dans la liste moins qu'on ne veuille le contraire. Il suffit alors de la spcifier dans la balise Selection : <select name="niveau" Multiple>

13/21

Les objets d'un formulaire (V)


L'insertion de cases cocher s'effectue l'aide :
<input type="checkbox" />

Linux

DOS

On peut lui donner un nom et une valeur avec les attributs name et value. Si une case doit tre coche au dpart on ajoute l'attribut checked.
<input type="checkbox" name = "pfm1" value = "Linux" checked />Linux <input type="checkbox" name = "pfm2" value = "DOS" />DOS

14/21

Les objets d'un formulaire (VI)


Les boutons d'options sont, quant eux, dfinies l'aide du type radio qui possde les mme attributs que les cases cocher.
Volley

Foot

<input type="radio" name = "sport" value = "volley" checked />Volley <input type="radio" name = "sport" value = "Foot" />Foot

Les boutons d'options doivent avoir le mme nom.

15/21

Les objets d'un formulaire (VII)


Le type password fonctionne exactement de la mme manire qu'une zone de texte simple l'exception que son contenu est masqu au moment de la saisie. **********
<input type="password" name = "pwd" size=10 maxlength=10 />

16/21

Les objets d'un formulaire (VIII)


La balise TEXTAREA permet de dfinir une zone de saisie plus vaste par rapport la simple ligne de saisie que propose la balise INPUT. Cette balise possde les attributs suivants:
cols: reprsente le nombre de caractres que peut contenir une ligne rows: reprsente le nombre de lignes readonly: permet d'empcher l'utilisateur de modifier le texte entr par dfaut dans le champ
<textarea name="texte" cols=40 rows=5>Texte de dpart</textarea>

17/21

Exemple

18/21

Rcuprer les donnes


Un formulaire a t valid par la touche Submit. Comment peut on passer ces valeurs une nouvelle page afin de les rutiliser et de les afficher. Le traitement est effectu par le scrypte php indiqu au niveau Action du formulaire.
Dans le programme PHP on rcupre alors les valeurs qui sont enregistres dans la variable $_POST.

<input type ="text" name="utilisateur" value = "Fagroud" />

Va crer une variable $_POST['utilisateur']


<select name="niveau" > crera une variable $_POST['niveau']

<input type="checkbox" name = "pfm2" value = "DOS" />

crera une variable $_POST['pfm2'] qui prend la valeur on si la case est coche et Null dans le cas contraire.

19/21

Rcuprer les donnes


<INPUT TYPE=TEXT SIZE=30 NAME="nom[]"> pour rcuprer les donnes

dans un tableau. Cette possibilit est surtout utilise avec les liste de choix multiples.

On peut galement remplir un formulaires partir de donnes provenant de variables ou de tableaux.

20/21

Rcuprer les donnes


<body> <form action="choix.php" method="post" name="exemple_formulaire"> <?echo "liste de personnes\n";?> <select name="matiere"> <? $titre="Bienvenu"; $mon_tableau[]=("Math"); $mon_tableau[]=("Physique"); $mon_tableau[]=("Sciences"); $mon_tableau[]=("Anglais"); for ($i=0;$i<count($mon_tableau);$i++){ echo " <option>".$mon_tableau[$i]."</option>"; }?> </select> <? Echo "<input type=submit value=".$titre. "name=\"Envois\">"; </form> </body> 21/21

Passage sans formulaire


Passer des paramtres sans utiliser de formulaire Il existe une alternative au formulaire pour transmettre des donnes : le lien hypertexte. La cration dun lien hypertexte permettant de soumettre des donnes suppose lemploi dune balise dancre <A>, qui se sert dun attribut HREF pour dsigner la page cible et lui transmettre les donnes une fois que lutilisateur a cliqu sur le lien. Un point dinterrogation (?) spare la cible, des donnes.

Exemple : pour transmettre le nom et la ville de notre cole, on crit :


<A HREF=http://www.enitab.fr/nouv_page.php?name=ENITA& ville=Bordeaux> Cliquer ici </A> En utilisant des variables PHP, on obtient ceci :

<? $nom="ENITA" ?> <? $ville="Gradignan" ?> <A HREF=http://www.enitab.fr/nouv_page.php?name= <? echo $nom ?>&ville=<?echo $ville?>> Cliquer ici </A>

22/21