Les formulaires - Méthodes POST et GET
I. Introduction⚓︎
II. Les formulaires⚓︎
1. Qu’est-ce qu’un formulaire ?⚓︎
Un formulaire créé une interface homme-machine (IHM) permettant une interaction avec l'utilisateur
2. Créer un formulaire simple⚓︎
Nous allons créer le formulaire suivant :
Une fois exécuté par Alice, elle a obtenu l’affichage suivant :
Créer le fichier formulaire_Bonjour.html
suivant
Pour créer l'intéraction
L'attribut action
du fichier formulaire_Bonjour.html
précédant, donne l'url du programme PHP destiné à traiter les données validées.
Créer le fichier bonjour.php
suivant
Utiliser le serveur UwAmp
- Recopier ces deux fichiers dans votre répertoire (du style C:\UwAmp\www\Dupond)
- Exécuter le fichier formulaire_Bonjour.html
Mon info
$_POST
est un tableau associatif. Il contient tous les couples clé (les variables) / valeur transmis par la méthode post
.
Modification du formulaire
Reprendre l’exemple précédent, en rajoutant la saisie de l’âge.
Vous enregistrerez les fichiers sous les noms formulaire_bonjour_age.html
et bonjour_age.php
Syntaxe pour saisir un nombre :
input type="number"
Votre programme devra afficher par exemple après exécution :
Bonjour Alice
Vous avez 17 ans
Solution
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title> Hello </title>
</head>
<body>
<form action="bonjour_age.php" method="post">
Entrez votre prénom : <br>
<input type="text" name="prenom"> <br><br>
Entrez votre âge : <br>
<input type="number" name="age"> <br>
<input type="submit" value="Envoyer">
</form>
</body>
</html>
et
III. Méthode post et méthode get⚓︎
Mon info
Il existe deux méthodes pour récupérer les variables : la méthode post et la méthode get.
La méthode post crée le tableau associatif $_POST, et la méthode get crée le tableau associatif $_GET.
1. Méthode get⚓︎
Tester get
Reprendre les fichiers formulaire_bonjour_age.html et bonjour_age.php et les enregistrer respectivement sous formulaire_bonjour_age_get.html et bonjour_age_get.php
- Dans formulaire_bonjour_age_get.html rectifier action=, et remplacer method= " post " par method= " get "
- Dans bonjour_age_get.php remplacer $_POST par $_GET
Tester successivement formulaire_bonjour_age.html et formulaire_bonjour_age_get.html en observant l’adresse url de la barre de navigation.
Que constatez-vous ?
Solution
La méthode get fait circuler les informations du formulaire en clair dans la barre d'adresse.
Que fait google ?
Dans un navigateur, par exemple Firefox, utiliser la barre de recherche google avec un mot : par exemple koala
Quelle est la méthode utilisée par google ?
Solution
On observe dans la barre d'adresse : https://www.google.com/search?client=firefox-b-d&q=koala
google utilise donc la méthode get.
2. Comparaison des méthodes get et post⚓︎
Mon info
La méthode POST, transmet les informations du formulaire de manière masquée mais non cryptée. Le fait de ne pas afficher les données ne signifie en rien qu'elles sont cryptées. Rappelons nous d'ailleurs que ces informations utilisent le protocole HTTP et non HTTPS qui lui crypte les données.
Quelle est la meilleure méthode à adopter alors ? Cela dépend. Le choix de l'une ou de l'autre se fera en fonction du contexte. Si par exemple, nous souhaitons mettre en place un moteur de recherches alors nous pourrons nous contenter de la méthode GET qui transmettra les mots-clés dans l'url. Cela nous permettra aussi de fournir l'url de recherches à d'autres personnes. C'est typiquement le cas des URLs de Google .
La méthode POST est préférée lorsqu'il y'a un nombre important de données à transmettre ou bien lorsqu'il faut envoyer des données sensibles comme des mots de passe. Dans certains cas, seule la méthode POST est requise : un upload de fichier par exemple.
V. Crédits⚓︎
Auteur : Mireille Coilhac