21-08-2008 : 21h37 min - Disconnected
Last modification : 12 August 2007

 

Le traitement des formulaires

 

Nous avons déjà vu comment créer un formulaire. Nous allons maintenant voir comment récupérer les données à l'aide de PHP.

Un exemple facile

Dans l'exemple suivant nous allons saisir deux nombres et afficher leur somme dans la page suivante.

Premier nombre :

Deuxième nombre :

Avant de valider, quelques explications :

Lorsque vous validerez, les données des deux champs ci-dessus seront envoyées à la page suivante. Ces données sont stockées dans une variable qui porte le nom du champ. Ici le champ de saisie "Premier nombre" se nomme "a" et le champ de saisie "Deuxième nombre" se nomme "b". Les variables qui contiendront les données se nommeront donc a et b.

La page qui récupérera les données et qui les traitera est celle spécifiée avec le mot clé "action" (voir cours sur les formulaires). Ici il s'agit de formation_php2b.php.

Grâce au PHP, on peut donc très simplement récupérer les données et en faire ce que l'on veut. On a choisi ici d'additionner les nombres, mais on aurait aussi pu les stocker dans une base de données et envoyer le résultat par mail à un ami :-). Il n'y a pas de limite au code de la page qui traite les données, sauf votre imagination.

Exercice :

Dans la rubrique "formulaire" préparée au cours précédent, créer un formulaire de saisie de deux nombres. Ensuite, afficher le produit de ces nombres dans une autre page.

Un peu plus dur ...

Compliquons un peu la chose ...

Après avoir saisi deux nombres et vu le résultat, je voudrais pouvoir revenir à la page du formulaire et avoir les deux nombres encore visibles. Cela me permettrait de n'en changer que un.

Premier nombre :

Deuxième nombre :

 

Si vous avez validé le formulaire ci-dessus, vous pouvez continuer la lecture de cette page.

Etudions le code source du formulaire ci-dessus :

Ligne 2 et 3 : Lorsqu'on revient de la page qui traite le formulaire les valeurs sont transmises par la méthode GET. Je récupère ces valeurs grâce à la variable $_GET. Si je ne suis pas encore passé par la page qui traite le formulaire la variable $_GET est vide, donc $nb1 et $nb2 ne contiennent aucune valeur dans ce cas.

Ligne 6: On met par défaut la valeur de nb1. Cette variable est vide lors du premier passage dans le formulaire puis contient le nombre saisi lors du deuxième passage.

A retenir :

N'hésitez pas à mélanger PHP et html. Si vous n'êtes pas à l'aise avec le code source, commencez par utiliser votre éditeur favoris pour créer le formulaire, puis ajoutez le code PHP là où c'est nécéssaire.

Exercice :

Reprenez l'exercice précédent et modifiez le pour que les champs du formulaire ne soient pas effacés lorsqu'on revient sur la page.

Différences entre POST et GET

Nous avons vu qu'il y avait deux méthodes pour passer des variables d'une page à l'autre :POST et GET. Voici quelques commentaires sur ces méthodes :

  • La méthode POST s'utilise obligatoirement avec un formulaire. Or on a pas toujours envie de mettre un formulaire pour passer des variables d'une page à l'autre.
  • La méthode POST passe les variables d'une page à l'autre de façon invisible.
  • La méthode GET ne passe pas les variables d'une page à l'autre de façon invisible. Celles-ci apparaissent dans le lien, qui est visible dans la barre d'adresse de votre navigateur.
  • La méthode GET permet de passer des variables d'une page à l'autre sans formulaire.
  • Dans un formulaire, on peut aussi passer les variables par la méthode GET. Regardez dans le code source du paragraphe précédent : il suffit de remplacer POST par GET. Cela peut être utile pour debugger un script.

 

Nous verrons dans les chapitres suivants comment envoyer les données du formulaire par mail et comment les stocker dans une base de données.

 

Cours suivant : Envoyer un mail