Rappels sur les formulaires
Le moyen le plus courant pour transmettre des informations depuis le visiteur vers le serveur est d'utiliser les formulaires.
L'utilité d'un formulaire HTML
Le formulaire HTML est un ensemble d'éléments que l'utilisateur soumet au serveur. Ces éléments sont essentiellement les inputs. Cela permet une communication entre l'utilisateur et le site web.
La balise <form>
Les formulaires sont encadrés par les balises <form> et possèdent les attributs suivants:
method, indique le type d'envoi des données. Soit en POST ( données envoyées via le corps de la requête ) ou en GET qui envoie les données via l'URL.
"post" cache les données transmises au visiteur. "get" les rend visibles dans l'url de la page.
action indique la localisation du script. Cela peut être un script CGI, une page PHP ou directement une adresse mail, exemple : mailto:stagiaire@afpar.com
method indique la méthode d'envoi des données de formulaire (get ou post)
target indique la destination du retour du formulaire
Exemple :
Un formulaire avec quelques éléments de base
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form name="monFormulaire" action="cible.php" method="post" target="_blank">
<p>Zone de texte : <input type="text" name="champTexte"></p>
<p>Liste déroulante :
<select name="liste">
<option value="1">Choix 1</option>
<option value="2">Choix 2</option>
<option value="3">Choix 3</option>
<option value="4">Choix 4</option>
</select>
</p>
<p>Choix multiples :
<input type="radio" name="niveau" value="0" checked> Débutant
<input type="radio" name="niveau" value="1"> Intermédiaire
<input type="radio" name="niveau" value="2"> Bon
<input type="radio" name="niveau" value="3"> Jedi
</p>
<p>Cases à cocher : <input type="checkbox" name="accord" value="ok"> Je suis d'accord</p>
<p><input type="submit" value="Envoyer"></p>
</form>
</body>
</html>
Ce qui donne l'affichage suivant :

L'envoi du formulaire se fait par un clic sur un bouton de type submit (ici il a la valeur "Envoyer")
Le traitement en PHP
Récupérer les données du formulaire
La soumission du formulaire par l'utilisateur redirige vers la page définie dans la propriété action.
Toutes les données des éléments du formulaire sont transmises au serveur via l'entête HTTP.
Ces données sont disponibles dans la page cible définie par l'attribut action du formulaire.
Vous pouvez les manipuler via des variables appelées $_POST['nameDuChamp']
Zone de texte :
Pour récupérer et afficher le texte saisi par l'utilisateur dans la zone de texte, j'aurais dans ma page cible.php :
echo $_POST['champTexte'];
Liste déroulante :
Pour récupérer et afficher le choix de l'utilisateur dans la liste de sélection, j'aurais dans ma page cible.php :
echo $_POST['liste'];
Ici, une variable$_POST['liste']sera créée, et elle contiendra le choix qu'a fait l'utilisateur. S'il a choisi « Choix 3 », la variable$_POST['liste']sera égale au value correspondant, c'est-à-dire 3.
Choix multiples :
Pour récupérer et afficher le choix de l'utilisateur dans la liste de sélection, j'aurais dans ma page cible.php :
echo $_POST['niveau'];
Dans la page cible, une variable$_POST['niveau']sera créée. Elle aura la valeur du bouton d'option choisi par le visiteur, issue de l'attribut value. Si on est débutant, alors on aura $_POST['niveau'] = 0.
Case à cocher :
Pour récupérer et afficher le choix de l'utilisateur dans la liste de sélection, j'aurais dans ma page cible.php :
echo $_POST['accord'];
Si la case a été cochée, alors $_POST['accord'] aura pour valeur « ok».
Si elle n'a pas été cochée, alors$_POST['accord'] n'existera pas. Vous pouvez faire un test avec isset($_POST['accord']) pour vérifier si la case a été cochée ou non.