06/05/2010
1
03/02/10 1
Les formulaires
Pour récupérer une variable provenant d'un formulaire par la méthode GET (
exemple voir.php?mavariable=toto
), on utilise$_GET["mavariable"]
Pour récupérer une variable provenant d'un formulaire par la méthode POST, il faut utiliser la variable
$_POST["mavariable"]
Lorsque l'on soumet un formulaire à un fichier PHP,toutes les données du formulaire lui sont passées en tant que variables (noms associés aux champs du formulaire).
$_GET et $_POST sont des tableaux asociatifs.
03/02/10 2
Création d'un formulaire method GET
La balise form du langage html permet la création de formulaires .
Pour utiliser un tel formulaire capable d'envoyer des informations à un script PHP, il faut mettre le nom du fichier PHP qui réceptionnera les informations en tant que valeur de l'attribut action de la balise
form.formulaire permettant d'envoyer les coordonnées d'une personne à un fichier test.php:
<form method="GET" action="test.php">
Nom <input type="text" size="20" name="nom" /><br />
Prénom <input type="text" name="prenom" /><br />
Age : <input type="text" name="age" /><br />
<input type="submit" value="Envoyer" />
</form>
03/02/10 3
Récupération et utilisation des données method GET
Le fichier test.php affiche les informations saisies par l'utilisateur à l'écran.
<?
$nom = $_GET["nom"];
$prenom = $_GET["prenom"];
$age = $_GET["age"];
echo "informations saisies <br />
Nom : $nom <br />
Prenom : $prenom <br />
Age : $age <br />
";
?>
Entrée des données coté client
<html>
<body>
<form action="acquisition_form.php" method="post">
<pre>
Prénom : <input type="text" name="prenom" /><br />
Nom : <input type="text" name="nom" /><br />
Adresse : <input type="text" name="adresse" /><br />
Ville : <input type="text" name="ville" /><br />
Code Postal : <input type="text" name="cp" /><br />
<input type="submit" value="Envoyer" /> <input type="reset"
value="Réinitialiser" />
</pre>
</form>
</body>
</html>
Récupération des données coté serveur
acquisition_form.php
<html><body>
<h2>Résultats de l'acquisition du formulaire</h2>
<?php
foreach($_POST as $cle =>$valeur){
echo "La valeur de la clé $cle est $valeur <br />";}
?>
</body></html>
Résultats de l'acquisition du formulaire La valeur de la clé prenom est Arthur La valeur de la clé nom est Rimbaud La valeur de la clé adresse est rue de la gare La valeur de la clé ville est Béthune La valeur de la clé cp est 59123
Exemple: Bouton radio
Ecrire un formulaire permettant de saisir vos nom et prénom et un code sexe à l’aide d’un bouton radio puis d’afficher dans une nouvelle page le texte suivant
« Bonjour civilité prénom nom ».
echo '<form method="post" action="affiche.php">';
echo '<p>nom <input name="nom" type="text" size="25" /></p>';
echo '<p>prénom <input name="prenom" type="text" size="15" /></p>';
// Ajout de boutons radio
echo '<p><input name="sexe" type="radio" value ="F"/>Femme ';
echo '<input name="sexe" type="radio" value="H"/>Homme</p>';
echo '<p><input type="submit" value="envoyer" />';
echo '<input type="reset" value="annuler" /></p>';
echo '</form>';
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
echo "<p>Bonjour ";
if (isset($_POST['sexe'])){
if ($_POST['sexe']=="F") echo "madame ";
elseif ($_POST['sexe']=="H") echo "monsieur ";
}
echo "$prenom $nom</p>";
06/05/2010
2 Exemple: Bouton radio
Dans l’exemple ci-dessous, les valeurs transmises sont mémorisées dans des variables nommées « nom » , « prenom » et « sexe ».
echo '<form method="post" action="affiche.php">';
echo '<p>nom <input name="nom" type="text" size="25" /></p>';
echo '<p>prénom <input name="prenom" type="text" size="15" /></p>';
// Ajout de boutons radio
echo '<p><input name="sexe" type="radio" value ="F"/>Femme ';
echo '<input name="sexe" type="radio" value="H"/>Homme</p>';
echo '<p><input type="submit" value="envoyer" />';
echo '<input type="reset" value="annuler" /></p>';
echo '</form>';
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
echo "<p>Bonjour ";
if (isset($_GET['sexe'])){
if ($_GET['sexe']=="F") echo "madame ";
elseif ($_GET['sexe']=="H") echo "monsieur ";
}
echo "$prenom $nom</p>";
Exemple: Cases à cocher et tableau
Dans l’exemple ci-avant, les valeurs transmises étaient mémorisées dans des variables nommées « nom » , « prenom » et « sexe ».
Il est quelquefois plus simple de mémoriser des valeurs dans un ou plusieurs tableaux , notamment lorsque les valeurs à mémoriser sont de même type. C’est souvent le cas pour les cases à cocher ou les listes déroulantes.
$couleurs=$_POST['couleurs'];
// Si on veut afficher les couleurs...
foreach($couleurs AS $value) echo $value;
// Si on veut afficher une couleur...
echo "la 1ere couleur est ".$couleurs[0];
// OU en gérant les tableaux multidimensionnels…
echo $_POST['couleurs'][0];
<br />Couleurs preferees :
<input type="checkbox" name="couleurs[]" value="bleu" /> Bleu
<input type="checkbox" name="couleurs[]" value="blanc" /> Blanc
<input type="checkbox" name="couleurs[]" value="rouge" /> Rouge
<input type="checkbox" name="couleurs[]" value="nesaitpas" checked="checked" />Ne sait pas
Il suffit ensuite de récupérer le tableau des couleurs…
Echange d’informations sans formulaire
Transmission de données entre pages :Selon le schéma ci-dessous, demandez la confirmation de l’identité de l’utilisateur avant de transmettre ses noms et prénoms à une troisième page selon les cas indiqués ci-après :
En cliquant sur des liens hypertexte
En cliquant sur des images
En cliquant sur des boutons
En créant un formulaire
envoyer
continuer
retour
Echange d’informations avec des liens hypertextes
On crée l’URL avec les paramètres à transmettre …
// Cas a: Confirmation et choix de la page suivante // par des liens hypertextes
echo "<p>Si vous êtes bien $prenom $nom, cliquez sur 'continuer' sinon cliquez sur 'retour'.<p>";
$url="suite.php?nom=$nom&prenom=$prenom";
echo "<a href=\"$url\">continuer </a>";
echo "<br />";
echo '<a href="page1.php">retour</a>';
Echange d’informations en cliquant sur des images...
Même cas que précédemment mais on remplace le texte par une image
// Cas b: Confirmation et choix de la page suivante // par des clics sur image
echo "<p>Si vous êtes bien $prenom $nom, cliquez sur le point vert sinon cliquez sur le point rouge.<p>";
$url="suite.php?nom=$nom&prenom=$prenom";
echo "<a href=\"$url\"><img src=\"feuVert.jpg\"</a>";
echo "<br />";
echo "<a href=\"page1.php\"><img src=\"feuRouge.jpg\"</a>";
Echange d’informations en cliquant sur des boutons...
On remplace l’image cliquable par un bouton cliquable
// Cas b: Confirmation et choix de la page suivante
echo "<p>Si vous êtes bien $prenom $nom, cliquez sur 'continuer' sinon cliquez sur 'retour'.<p>";
$url="suite.php?nom=$nom&prenom=$prenom";
echo "<a href=\"$url\"><input type=\"button\" value=\"continuer\"></a>";
echo '<a href="page1.php"><input type="button" value="retour"></a>';
06/05/2010
3
Echange d’informations en utilisant des zones cachées d’un formulaire...
On crée 2 formulaires qui permettent d’envoyer les valeurs mais qui ne permettent pas de saisie car on cache les entrées grâce au type « hidden »
echo "<form method=\"get\" action=\"suite.php\">";
echo "<input type=\"hidden\" value=$nom name=\"nom\">";
echo "<input type=\"hidden\" value=$prenom name=\"prenom\">";
echo "<p>Si vous êtes bien $prenom $nom, cliquez sur 'continuer' sinon cliquez sur 'retour'.<p>";
echo '<p><input type="submit" value="envoyer" />';
echo "</form>";
echo "<form method=\"get\" action=\"td_php3.php\">";
echo '<p><input type="submit" value="retour" />';
echo "</form>";echo '<a href="page1.php"><input type="button" value="retour"></a>‘;