Le site de référence en environnement
et sciences de la Terre depuis 2001

english deutsch
Envoyer cette page
Cours PHP  rss  Plan du site

connexion Se connecter

Login (email)  
Mot de passe mémoriser
 
Devenir membreRetrouver vos identifiants

Plus que 26 jours pour gagner 3 livres !

Marre de la pub ? Devenez membre premium !

actu21 décembre 2012 : la fin du monde ?
actu"Il est déjà trop tard" : l'espèce humaine devrait s'éteindre ce siècle
actuDémographie : la vraie vérité qui dérange
actuLes abeilles, témoins du bon état de notre environnement, disparaissent massivement
actuUn nouveau "continent" de déchets a été découvert dans l'océan Atlantique Nord !
actuManger autant de viande est une aberration pour l'environnement et la santé
actuLe pic pétrolier mondial : on doit s'y préparer dès maintenant !
actuLimiter l'augmentation de la température planétaire à 2 ºC n'est plus réalisable
actuLe déclin de l'industrie nucléaire
actu7 milliards d'habitants sur Terre
actuPollution de l'air : plus de 2 millions de morts par an

Marre de la pub ? Devenez membre premium !

Sondage Février 2012

Découvrez l'agenda du mois
> > Février 2012 < <

Marre de la pub ? Devenez membre premium !

www.notre-planete.info : environnement, développement durable et sciences de la Terre

Les formulaires : la méthode POST

Intérêt

L'un des intérêts majeurs de PHP est sa capacité à exploiter les données qui sont fournies par un internaute via les formulaires HTML bien connus.
Ces formulaires sont notamment utilisés pour s'identifier sur un site, répondre dans un forum de discussions, ajouter des articles dans un blog, faire un commentaire sur un article... Bref, à chaque fois que vous participez à l'enrichissement d'un site Internet, vous fournissez des informations via un formulaire. PHP récupère ensuite ces données pour les insérer dans une base de données, pour les exploiter, les afficher...

Fonctionnement

Un formulaire est constitué de champs et de contrôles : zones de texte, boutons radio, cases à cocher, listes déroulantes... Chacun de ces éléments se caractérise par un attribut "name" qui définira tout simplement le nom de la variable à récupérer en PHP avec la valeur rentrée par l'utilisateur.
Ainsi, rappelons qu'un formulaire HTML se définit avec les balises <form> et </form>. L'attribut "action" de cette balise permet de spécifier la page qui traitera les données fournies dans le formulaire par l'internaute ; l'attribut "method" la méthode de transmission (GET ou POST).

Exemple simple de formulaire

<form action="resultat.php" method="post">
Entrez votre prénom : <input type="text" name="prenom" />
<input type="submit" value="valider" />
</form>

Ce qui donnera sur votre navigateur, si vous rentrez "martial" :

Entrez votre prénom :

Sur cet exemple, l'utilisateur a la possibilité de spécifier une seule information : son prénom, cette donnée sera exploitable dans la page resultat.php sous la forme d'une variable $_POST["prenom"] (composée de l'attribut "name" de la zone de texte à remplir) dont la valeur sera égale à la chaîne de caractères entrée.
Ainsi on aura par exemple dans la page resultat.php :

<?php
echo "Prénom tapé par l'utilisateur : ".$_POST['prenom'];
?>

Prénom tapé par l'utilisateur : martial

Une variable dite superglobale est alors automatiquement créée et exploitable dans le fichier resultat.php et uniquement dans celui-ci.
Tous les contrôles de formulaire qui possèdent un attribut "name" engendrent la création d'une variable superglobale dont le nom est $_POST["nom de la variable"] et la valeur fonction des renseignements saisis par l'utilisateur. Nous remarquerons l'emploi de la syntaxe $_POST qui rappelle que la variable a été construite à partir de la méthode POST.
Notons enfin que l'on peut écrire indistinctement : $_POST['prenom'], $_POST["prenom"] ou $_POST[prenom].

La méthode POST

Deux méthodes peuvent être utilisées dans l'envoi de données via les formulaires, la méthode GET et POST. Nous préconisons l'emploi de la méthode POST car elle cache les informations transmises (qui transiteraient par l'URL dans le cas de la méthode GET). De plus, elle permet d'envoyer des données importantes en taille (la méthode GET se limite à 255 caractères) et assure la gestion de l'envoi de fichiers.
La méthode GET est utilisée par défaut lorsque l'on utilise l'URL pour faire passer des variables, ce que nous aborderons plus loin sur cette page.

Exemples de contrôles et de champs de formulaires

Voici un exemple de traitement des variables qui émanent des différents contrôles et champs renseignés par un internaute sur un formulaire d'échange de liens.

<form method="POST" action="traitement.php">
Votre adresse e-mail<input type="text" name="mail" value="adresse e-mail" size="30" maxlength="55">
<input type="checkbox" NAME="mailing" value="oui" checked> abonnement gratuit à notre-planete.info
Description de votre site<br>
<textarea name="description" rows="3" cols="60"></textarea><br>
Type d'échange souhaité :
<select name="demande">
<option selected="selected" value="echange de liens">Echange de liens</option>
<option value="partenariat">Partenariat</option>
</select>
Dans quelle rubrique souhaitez-vous être présent ?<br>
<input type="radio" name="rubrique" value="environnement" />Environnement / Ecologie<br>
<input type="radio" name="rubrique" value="geographie" />Géographie<br>
<input type="radio" name="rubrique" />Photos
</form>

Ce qui donne sur votre navigateur, une fois qu'un demandeur a rempli le formulaire :

Votre adresse e-mail
abonnement gratuit à notre-planete.info

Description de votre site



Type d'échange souhaité :

Dans quelle rubrique souhaitez-vous être présent ?
Environnement / Ecologie
Géographie
Photos

Nous remarquerons que l'appel à la page de traitement des données est "traitement.php", on peut tout à fait appeler la même page en utilisant une variable globale PHP intitulée $_SERVER['PHP_SELF'] qui signifie la page en cours.
Ainsi, l'affichage du formulaire et l'exploitation de ses résultats sera opéré sur la même page. Ceci implique que dans le code PHP, un test soit effectué pour savoir si le formulaire a été rempli ou non par exemple en testant si une des variables du formulaire a été déclarée avec la fonction isset().
Le code qui permet de récupérer les différentes valeurs saisies par l'utilisateur est le suivant :

<?php
$mail 
$_POST["mail"];
echo 
"votre adresse e-mail est : $mail<br />";
$mailing = (isset($_POST["mailing"])? "oui" "non");
echo 
"Avez-vous souhaité vous inscrire sur la lettre d'informations ? $mailing<br />";
$description htmlentities($_POST["description"],ENT_QUOTES);
echo 
"et sa description est la suivante : <br />".nl2br($description)."<br />";
$rubrique =  $_POST["rubrique"];
echo 
"pour la rubrique ".$rubrique;
?>

Remarques

  • pour la case à cocher la variable prend la valeur true ou false si la case a été cochée ou non. Un simple test (écrit sous une forme raccourcie ici) attribue à la variable mailing la valeur "oui" ou "non". En fait, si la case a été cochée, la variable "name" correspondante est déclarée, sinon elle n'existe pas ;
  • l'attribue "name" des boutons radios est le même car ils appartiennent à une même liste de choix. Le bouton radio sélectionné crée une variable nommée $_POST["rubrique"] qui est égale à la valeur notée dans l'attribut "value" si il existe, sinon sa valeur sera égale à la chaîne de caractères spécifiée entre les balises <input> et </input> ;
  • la liste d'options fonctionne de la même façon pour la valeur de la variable $_POST["demande"], l'attribue "name" étant déclaré dans la balise <select>
  • nous utilisons la fonction htmlentities() qui transforme certains caractères du texte entré par l'utilisateur dans la zone de texte en d'autres qui ne permettront pas l'exécution de code HTML par une personne malintentionnée ;
  • nous employons la fonction nl2br() qui permet de conserver les sauts de ligne effectués dans la zone de texte

votre adresse e-mail est : demandeur@fai.com
Avez-vous souhaité vous inscrire sur la lettre d'informations ? oui
et sa description est la suivante :
Site sur les insectes tropicaux.
Découvrez les plus impressionnants insectes visibles sur notre planète en toute saison : l'été comme l'hiver.
pour la rubrique photos

Ces données seront ensuite insérées dans une base de données pour y être conservées et exploitées par la suite.


Aller en haut de page ^ Offres d'emploi et CV     Livres et DVD     Associations     Communiqués     Agenda     rss Flux RSS     Partenaires

Page mise à jour le 01/12/2011  25 connectés© 2001-2012 notre-planete.info® v. 5.68 - tous droits réservés
notre-planete.info est un site indépendant qui informe et sensibilise objectivement sur l'environnement, l'écologie, les sciences de la Terre et le développement durable
Mentions légales  |   Presse  |   Publicité  |   Contact  |   Liens et logos  |   Soutenez notre-planete.info !