Imaginez vous un site commercial sans formulaire de contact ?…
Lors de la création de formulaires en HTML, on détermine un attribut d’action qui désigne une page PHP destinée à traiter les informations transmissent. Voyons comment utiliser les variables super-globales $_GET
et $_POST
.
Transfert des données
Lors de la validation des formulaires le navigateur ouvre la page d’action et y transfère les données contenu dans les champs du formulaire.
Ces données sont stockées dans la variable super-globale get
ou post
, sous la forme d’un array.
La sécurité avant tout
Il faut définir la méthode lors de la création du formulaire en HTML.
<form action="/formulaire.php" method="get">
ou
<form action="/formulaire.php" method="post">
Les deux super-globales se manipulent exactement de la même façon. La différence ce trouve au niveau de la confidentialité des données.
La méthode $_GET
transfère les données par l’URL. Elles sont donc lisible par les visiteurs et surtout stocker dans l’historique. Il faut donc bien réfléchir à la nature des données qui vont transiter et le degré de confidentialité.
Alors que la méthode $_POST
transmet les données par le protocole HTTP.
La méthode $_POST
n’a pas de limite, là ou la méthode $_GET
est limité à 3000 caractères.
Afficher les données
Un formulaire qui ne récupérer pas les données ne sert à rien. Voyons dans un premier temps comment récupérer les valeurs dans la super-globale.
<form action="formulaire.php" method="get"> nom : <input type="text" name="nom"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form>
Le formulaire utilise la méthode $_GET
, ce qui signifie que les données transiteront par l’URL, sous cette forme.
/formulaire.php?nom=Mickey&email=Mouse@mickey.com
Mais pour les réutiliser dans notre page PHP, nous allons rappeler la variable super-globale $_GET
.
<?php echo $_GET["nom"].$_get["email"]; ?>
Si nous avions utilisé la méthode POST
, l’url n’aurait pas était modifié et nous utiliserions $_POST
en lieu et place de $_GET
.
<?php echo $_POST["nom"].$_get["email"]; ?>