Découverte du langage PHP
< Programmation PHP
: Accueil du site
Vous êtes ici : Récupérer les données de formulaire
On sait maintenant faire pas mal de choses en PHP mais pas encore interagir avec les visiteurs.
Les formulaires (du xHtml) permettent aux visiteurs d'envoyer des données au site qui les traitera à la réception.
Voici un petit exemple de formulaire :
<form action="mapage.php" method="post">
<input type="text" name="texte" /><br />
<input type="submit" name="submit" value="Envoyer le formulaire" />
</form>
Nous n'allons pas détailler la méthode de réalisation des formulaires car l'on sortira de la programmation PHP.
On voit qu'il y'a dans ce formulaire 2 inputs dont 1 de type "text" et un de type "submit".
Le input de type "text" à pour nom "texte" et celui de type "submit" à pour nom "submit".
La formulaire est envoyé sur la page "mapage.php" et la méthode d'envoi est "post".
Il existe deux méthodes d'envoi :
Dans la plupart du temps l'on utilisera cette méthode pour l'envoi des données via un formulaire. Cette méthode est plus sécurisée que la méthode GET car elle n'affiche pas directement dans l'adresse de la page les valeurs envoyées.
Le système de récupération des données par la méthode POST se réalise très simplement :
$_POST['nom_du_input']
Il s'agit d'une variable spéciale de PHP "$_POST" qui permet de récupérer les données d'un input du formulaire. Entrez entre les crochets le nom de l’input à sélectionner.
Voici comment l'on fera pour récupérer l’input "texte" du formulaire de tout à l'heure
<?php
$valeur = $_POST['texte'];
echo 'La valeur du input envoyé est : '.$valeur;
?>
On créer une variable qui contient la donnée du input texte puis on l'affiche.
Notez qu'on aurait pu directement afficher la valeur avec $_POST['texte'] :
<?php
echo $_POST['texte'];
?>
Vous pouvez avoir autant de $_POST['nom_du_input'] dans votre code à condition qu'il soit envoyé par le formulaire.
La méthode à utiliser est très similaire à celle utilisée pour la récupération de données via la méthode POST.
La variable PHP qui permet d'obtenir une donnée envoyée par GET est :
$_GET['nom_du_input']
Comme vous pouvez le constater, rien de bien différent que la méthode du POST mis à part que l'on utilise le terme GET désormais.
Imaginons avec ce formulaire :
<form action="mapage.php" method="get">
<input type="text" name="texte" /><br />
<input type="submit" name="submit" value="Envoyer la valeur" />
</form>
Le formulaire sera envoyé à la page "mapage.php" mais l'url (adresse web) affiché sera : mapage.php?texte=valeur&submit=Envoyer+la+valeur
Comme vous pouvez le constatez, beaucoup d'informations s'affichent se qui rend cette méthode moins sécurisée que la méthode POST.
Pour récupérer la valeur de l’input "texte" de ce formulaire :
<?php
echo $_GET['texte'];
?>
Certains visiteurs malveillants peuvent essayer d'insérer du code Javascript permettant de hacker (détruire un site Internet volontairement) votre site. Nous allons voir comment éviter ce genre de problème.
Il est très important de les utiliser dans vos applications web
La fonction qui permet de sécurisé les données reçues par le formulaire s'appel : htmlentities.
Cette fonction transforme du code en valeur xHTML permettant ainsi d'éviter son exécution.
Voici la méthode d'utilisation :
htmlentities($valeur, option)
Il existe différent type d'options :
Je vous conseil personnellement d'utiliser : ENT_QUOTES que j'utiliserai dans les articles PHP.
Si on reprend nos formulaires vu plus haut voici comment l'on sécurisera cela :
Pour la méthode POST
<?php
echo htmlentities($_POST['texte'], ENT_QUOTES);
?>
Pour la méthode GET
<?php
echo htmlentities($_GET['texte'], ENT_QUOTES);
?>
Utilisez cette méthode pour chaque donnée envoyée par un visiteur.