PHP Gestion des formulaires
PHP - Un simple formulaire HTML
Les superglobales PHP $_GET et $_POST sont utilisées pour collecter les données des formulaires.
L'exemple ci-dessous affiche un simple formulaire HTML avec deux champs de saisie et un bouton de soumission :
Exemple
Formulaire HTML avec method="post" :
<html> <body> <form action="welcome.php" method="post"> Nom : <input type="text" name="name"><br> E-mail : <input type="text" name="email"><br> <input type="submit"> </form> </body> </html> Lorsqu'un utilisateur remplit le formulaire ci-dessus et clique sur le bouton de soumission, les données du formulaire sont envoyées pour traitement à un fichier PHP nommé "welcome.php". Les données sont envoyées avec la méthode HTTP POST.
Pour afficher les données soumises, vous pouvez simplement afficher toutes les variables.
Le fichier "welcome.php" ressemble à ceci :
<html> <body> Bienvenue <?php echo $_POST["name"]; ?><br> Votre adresse e-mail est : <?php echo $_POST["email"]; ?> </body> </html> La sortie pourrait ressembler à ceci :
Bienvenue John Votre adresse e-mail est john.doe@example.com Le même résultat pourrait également être obtenu en utilisant la méthode HTTP GET :
Exemple
Même exemple, mais la méthode est définie sur "get" au lieu de "post" :
<html> <body> <form action="welcome_get.php" method="get"> Nom : <input type="text" name="name"><br> E-mail : <input type="text" name="email"><br> <input type="submit"> </form> </body> </html> Le fichier "welcome_get.php" ressemble à ceci :
<html> <body> Bienvenue <?php echo $_GET["name"]; ?><br> Votre adresse e-mail est : <?php echo $_GET["email"]; ?> </body> </html> Le code ci-dessus est assez simple et n'inclut aucune validation de formulaire.
Vous devez valider les données du formulaire pour protéger votre script contre le code malveillant !
Pensez SÉCURITÉ lors du traitement des formulaires PHP !
Cette page ne contient aucune validation de formulaire, elle montre simplement comment envoyer et récupérer des données de formulaire.
Cependant, les pages suivantes montreront comment traiter les formulaires PHP en tenant compte de la sécurité ! Une validation appropriée des données du formulaire est essentielle pour protéger votre formulaire contre les pirates et les spammeurs !
GET vs. POST
GET et POST créent tous deux un tableau (par exemple, array( key1 => value1, key2 => value2, key3 => value3, ...)). Ce tableau contient des paires clé/valeur, où les clés sont les noms des contrôles de formulaire et les valeurs sont les données saisies par l'utilisateur.
GET et POST sont tous deux traités comme $_GET et $_POST. Ce sont des superglobales, ce qui signifie qu'elles sont toujours accessibles, quel que soit le contexte - et vous pouvez y accéder depuis n'importe quelle fonction, classe ou fichier sans avoir à faire quoi que ce soit de spécial.
$_GET est un tableau de variables passées au script actuel via les paramètres de requête URL.
$_POST est un tableau de variables passées au script actuel via la méthode HTTP POST.
Quand utiliser GET ?
Les informations envoyées depuis un formulaire avec la méthode GET sont visibles par tous (tous les noms et valeurs des variables sont affichés dans l'URL). GET a également des limites sur la quantité d'informations à envoyer, avec une limitation d'environ 2000 caractères. Cependant, comme les variables sont affichées dans l'URL, il est possible de mettre la page en favori, ce qui peut être utile dans certains cas.
GET peut être utilisé pour envoyer des données non sensibles.
Remarque : GET ne doit JAMAIS être utilisé pour envoyer des mots de passe ou d'autres informations sensibles !
Quand utiliser POST ?
Les informations envoyées depuis un formulaire avec la méthode POST sont invisibles pour les autres (tous les noms/valeurs sont intégrés dans le corps de la requête HTTP) et n'ont aucune limite sur la quantité d'informations à envoyer.
POST prend également en charge des fonctionnalités avancées telles que le support pour les entrées binaires multiparties lors du téléchargement de fichiers sur le serveur.
Cependant, comme les variables ne sont pas affichées dans l'URL, il n'est pas possible de mettre la page en favori.
Les développeurs préfèrent POST pour envoyer des données de formulaire.
Ensuite, voyons comment nous pouvons traiter les formulaires PHP de manière sécurisée !