La méthode POST
Pour commencer voici un formulaire qui utilise la méthode post. Voici à quoi ressemble les lignes de code HTML concernées:
.01 .02 .03 .04 .05
| |
<form action="valider.php" method="post">
<select name="objet">
...
<input name="genre" type="text" />
|
Ce code HTML spécifie que les données du formulaire seront soumises à la page web "valider.php" en utilisant la méthode POST. La façon dont PHP effectue cela est d'emmagasiner toutes les valeurs "postées" dans un tableau associé nommé "$_POST". Prenez soin de noter les noms des données du formulaire, car ils représentent les "clés" dans le tableau associé "$_POST".
Maintenant que vous connaissez les tableaux associés, le code PHP de "valider.php" doit devenir plus clair.
.01 .02 .03 .04 .05
| |
<?php
$objet = $_POST['objet '];
$genre = $_POST['genre'];
?>
|
Les noms du formulaire sont utilisés en tant que
clés dans le tableau associé, donc vous devez vous assurer que vous n'avez jamais deux entrées de votre formulaire HTML portant le même nom. Si cela arrive, vous risquez d'avoir quelques problèmes.
La méthode GET
Comme nous l'avons déjà remarqué, l'alternative à la méthode POST est GET. Si nous devions changer notre formulaire HTML vers la méthode get, il ressemblerait à ceci:
.01 .02 .03 .04 .05
| |
<form action="valider.php" method="get">
<select name="objet">
...
<input name="genre" type="text" />
|
La différence avec la méthode post est qu'elle passe les variables à la page web "valider.php" en les ajoutant à la fin de l'URL. Apres avoir cliqué soumettre, l'URL aura ceci ajoute à la fin:
"?objet=xxx&genre=xxx"
Le point d'interrogation "?" dit au navigateur que les objets suivants sont des variables. Maintenant que nous avons changé la méthode d'envoi de l'information, nous devons changer le code de "valider.php" pour utiliser le tableau associé "$_GET".
.01 .02 .03 .04 .05
| |
<?php
$objet = $_GET['objet '];
$genre = $_GET['genre'];
?>
|
Une fois que le nom du tableau associe est changé le code fonctionnera correctement. Lorsque vous utilisez la méthode get,
elle affiche l'information de la variable à votre visiteur dans la barre d'adresse, assurez-vous donc que vous n'envoyez pas des informations de mot de passe ou autre objets confidentiels avec la méthode get. Vous ne voudriez pas que vos visiteurs voient des choses qu'ils ne devraient pas!
Précautions de Sécurité
Lorsque vous prenez ce qu'a entré l'utilisateur et voulez l'utiliser, vous devez être sûr que ce qui a été entré est sans danger. Si vous allez insérer les données dans une base de données MySQL, vous devez être sûr que vous avez prévu la protection contre une MySQL Injection. Si vous allez mettre à la disposition du public ce qu'a entrez un utilisateur, alors vous devez penser aux PHP htmlentities.