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

1
<html lang="fr">
2
	<head>
3
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4
	</head>
5
	<body>
6
		<form name="monFormulaire" action="cible.php" method="post" target="_blank">
7
		  <p>Zone de texte : <input type="text" name="champTexte"></p>
8
		  <p>Liste déroulante : 
9
		  <select name="liste">
10
			<option value="1">Choix 1</option>
11
			<option value="2">Choix 2</option>
12
			<option value="3">Choix 3</option>
13
			<option value="4">Choix 4</option>
14
		  </select>
15
		  </p>
16
		  <p>Choix multiples : 
17
		  <input type="radio" name="niveau" value="0" checked> Débutant 
18
		  <input type="radio" name="niveau" value="1"> Intermédiaire
19
		  <input type="radio" name="niveau" value="2"> Bon 
20
		  <input type="radio" name="niveau" value="3"> Jedi 
21
		  </p>  
22
		  <p>Cases à cocher : <input type="checkbox" name="accord" value="ok"> Je suis d'accord</p>
23
		 <p><input type="submit" value="Envoyer"></p>
24
		</form>
25
	</body>
26
</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 :

1
<?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 :

1
<?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 :

1
<?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 :

1
<?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.