Formulaire : récupérer des données
En HTML, pour exploiter votre formulaire vous devez renseigner deux attributs :
- l’attribut action dont la valeur correspond à la page qui sera appelée lorsque vous cliquez sur le bouton d’envoi
- l’attribut method qui désigne le mode d’envoi des données. Vous avez le choix entre la méthode POST et la méthode GET
<form action="traitementFormulaire.php" method="post">
<!-- les éléments html du formulaire -->
</form>
Méthode GET
La méthode GET n’est pas recommandée puisque les informations saisies ou sélectionées dans votre formulaire s’afficheront dans l’URL de la page qui traite le formulaire
Méthode POST
C’est la méthode conseillée puisque les données sont envoyées de façon confidentielle. Par ailleurs cette méthode s’impose pour l’envoi de fichiers ou de données importantes
Les données seront récupérées par la superglobale $_POST [ ]. Il s’agit d’un tableau associatif dont les clés correspondent aux valeurs des attributs name des élements HTML du formulaire.
Par exemple, pour récupérer la saisie de la zone de texte html :
<input type= »text » name= »pseudo » />
il faudra écrire
$_POST[‘pseudo‘]
Ce tableau a une portée globale. Vous pouvez donc l’utiliser n’importe où dans la page (dans une fonction ou une méthode de classe)
Vérifier l’envoi du formulaire
En PHP, la fonction isset() permet de vérifier si une variable est définie. Dans ce cas, si la variable $_POST[‘envoi’] est déclarée, cela signifie que le formulaire a été soumis. La clé envoi correspond au nom du bouton qui soumet le formulaire
Syntaxe HTML
<form action="recuper-donnees-formulaire.php#1.php" method="post">
<input type="submit" name="envoi">
</form>
Syntaxe PHP
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
}
?>
Champ de texte
En HTML, le champ de texte permet à l’internaute de saisir des mots ou des textes de taille limitée comme un pseudo
<form action="recuper-donnees-formulaire.php.php" method="post">
Pseudo : <input type="text" name="pseudo" placeholder="saisir...">
<input type="submit" name="envoi">
</form>
Voici la syntaxe PHP pour récupérer la valeur saisie
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo $_POST['pseudo'];
}
?>
Tester le résultat
Zone de texte
En HTML, le champ de texte permet à l’internaute de saisir du contenu plus long sur plusieurs lignes
<form action="recuper-donnees-formulaire.php.php" method="post">
message : <br>
<textarea name="message"></textarea>
<br>
<input type="submit" name="envoi">
</form>
Voici la syntaxe PHP pour récupérer la valeur saisie
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo $_POST['message'];
}
?>
Tester le résultat
Note : si vous sautez des lignes dans la zone de texte (en appuyant sur la touche ENTREE) vous remarquerez que PHP renvoie le contenu sur une seule ligne. Les sauts de lignes ont disparu. Cliquez sur le bouton envoi de l’exemple ci-dessous pour le constater.
Pour pouvoir afficher les sauts de lignes ignorés, il faut les transformer en balises html <br> avec la fonction nl2br().
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo nl2br($_POST['message']);
}
?>
Tester à nouveau le résultat
Champ caché
En HTML, un champ caché contient une valeur qui n’est pas visible par l’utilisateur mais qui sera exploitée par le fichier de traitement de données en PHP.
<form action="recuper-donnees-formulaire.php.php" method="post">
<input type="hidden" value="125648" name="cache">
<input type="submit" name="envoi">
</form>
Voici la syntaxe PHP pour récupérer le champ caché
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo $_POST['cache'];
}
?>
Tester le résultat
Champ mot de passe
En HTML, un champ mot de passe permet de saisir du contenu de manière cachée.
<form action="recuper-donnees-formulaire.php.php" method="post">
Mot de passe <input type="password" name="mdp">
<input type="submit" name="envoi">
</form>
Voici la syntaxe PHP pour récupérer la valeur saisie
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo $_POST['mdp'];
}
?>
Tester le résultat
Bouton radio
En HTML, un groupe de bouton radio permet de faire une sélection unique parmi un ensemble de choix.
<form action="recuper-donnees-formulaire.php.php" method="post">
Genre <input type="radio" name="genre"> h <input type="radio" name="genre"> f
<input type="submit" name="envoi">
</form>
Voici la syntaxe PHP pour récupérer ce choix
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo $_POST['genre'];
}
?>
Tester le résultat
<form action="recuper-donnees-formulaire.php.php" method="post">
Genre <input type="radio" name="genre" value="homme"> h <input type="radio" name="genre" value="femme"> f
<input type="submit" name="envoi">
</form>
Voici la syntaxe PHP pour récupérer ce choix
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo $_POST['genre'];
}
?>
Tester le résultat
Cases à cocher
En HTML, les cases à cocher permettent à l’internaute d’interagir en cochant une réponse ou plusieurs réponses.
– Récupérer une réponse
L’exemple le plus souvent rencontré est la confirmation de la lecture des conditions d’utilisation d’un site.
<form action="recuper-donnees-formulaire.php.php" method="post">
J'ai lu les conditions d'utilisation <input type="checkbox" name="choix"> <input type="submit" name="envoi">
</form>
Voici la syntaxe PHP pour récupérer ce choix
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo $_POST['choix'];
}
?>
Note : PHP ne retourne aucune valeur si rien n’est coché, comme si la case à cocher n’existait pas. Sinon par défaut PHP retourne la valeur ON si vous cochez. Comme pour le bouton radio, vous pouvez remplacer le ON par la valeur de l’attribut value associée de la case à cocher.
Tester le résultat
– Récupérer plusieurs réponses
Vous pouvez demandez à l’internaute de choisir plusieurs réponses pour une même question, comme lui demander de cocher les loisirs qu’il pratique.
<form action="recuper-donnees-formulaire.php.php" method="post">
Loisirs :
<input type="checkbox" name="choix[]" value="danse"> danse
<input type="checkbox" name="choix[]" value="cinema"> cinema
<input type="checkbox" name="choix[]" value="ballade"> ballade
<input type="submit" name="envoi">
</form>
Pour pouvoir récupérer toutes les réponses, on utilise le même nom pour toutes les cases à cocher en rajoutant des accolades à ce nom : choix [] .Voici la syntaxe PHP pour récupérer les réponses
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
print_r($_POST['choix']); // ici on récupère un tableau qui contient toutes les valeurs
}
?>
Vous ne pouvez pas utiliser echo pour un tableau. La fonction print_r affiche le contenu de votre tableau.
Note : PHP ne retourne aucune valeur si rien n’est coché, comme si les cases à cocher n’existaient pas. Sinon PHP retourne un tableau des valeurs d’attribut value associées à chaque case à cocher.
Tester le résultat
Liste déroulante
La liste déroulante permet de sélectionner une option parmi une liste d’éléments, comme sélectionner une ville, ou une taille..
<form action="recuper-donnees-formulaire.php.php" method="post">
<select name="legume">
<option value="haricot">Haricot</option>
<option value="poireau">Poireau</option>
<option value="carotte">Carotte</option>
</select>
<input type="submit" name="envoi">
</form>
Voici la syntaxe PHP pour récupérer la valeur saisie
<?php
if(isset($_POST['envoi'])){ // si formulaire soumis
echo $_POST['legume'];
}
?>
Tester le résultat
Note : si vous ne sélectionnez rien, PHP vous retournera la valeur de la première option.