– Les formulaires –

Le but des formulaires est de doter les pages web d’éléments interactifs permettant par un « dialogue » avec les internautes. L’internaute saisit des informations en remplissant des champs ou en cliquant sur des boutons, puis appuie sur un bouton de soumission pour l’envoyer soit à un URL (submit) soit à un script (button+js)

Les formulaires sont délimités par les balises <FORM> et </FORM> qui permettent de regrouper les éléments du formulaires (boutons, champs de saisie, listes déroulantes,…). Attention toutefois, les éléments du formulaire tels que vus dans le cours HTML ne sont que des éléments! Il faut mettre d’autres informations (texte par exemple) autour des éléments de formulaire pour savoir de quoi il s’agit. Sinon vous aurez juste des pauvres champs texte, des boutons, des listes, mais rien qui vus explique ce que c’est.

Attributs et méthodes

Il y a deux attributs obligatoires pour utiliser les formulaires en PHP:

  • method: définit la méthode qui sera utilisée lors de la validation du formulaire
  • action: l’url vers laquelle l’internaute sera redirigé après la validation du formulaire

Il y a également des attributs facultatifs:

  • enctype: type d’encodage utilisé (notamment pour l’upload de fichiers: enctype=mutlipart/form-data)
  • accept: type MIME des données pouvant être envoyées dans le formulaire

Les deux méthodes sont GET et POST:

  • POST: les variables et leurs valeurs sont stockées dans l’en-tête de la requête, invisible pour le navigateur, utilisable avec les formulaires avec la méthode POST
  • GET: les variables et leurs valeurs transitent en clair dans l’URL, visibles par le navigateur, utilisables avec les balises <a> et dans un formulaire avec la méthode GET

Lorsqu’un formulaire est soumis, les données présentes dans le formulaire sont envoyées sous forme de paires nom/valeur, sous la forme : « nom=valeur » . Les paires nom/valeur sont séparées par des &. Ce passage de paramètre est visible dans l’URL générée en méthode GET, pas avec la méthode POST.

Passage de paramètres

On voit ici les deux méthodes pour un formulaire. Quand il est validé, l’internaute est renvoyé en page p2.php, tel que c’est défini dans l’action du formulaire.

En méthode GET, on va tester pour chacun des paramètres si celui-ci a été passé dans le formulaire, et si c’est le cas, le script va le récupérer, et dans ce cas-là l’envoyer dans une variable. Il n’est bien sûr pas nécessaire que la variable ait le même nom que le nom du paramètre.

Pour récupérer le paramètre, on va utiliser le tableau global $_GET. Ici on a 2 paramètres à passer, « nom » et « prenom ». En page p2.php, on va tester si « nom » est passé en paramètre (if (isset($_GET[« nom »]))), puis si c’est le cas on le récupère ($nom=$_GET[« nom »];)

Si on essaie de récupérer un paramètre qui n’est pas passé en paramètre, alors une notice sera générée.

Pour la méthode POST, le fonctionnement est exactement le même, à part que cette fois-ci le tableau global $_POST sera utilisé.