PHP – FORMULAIRE – GET/POST
1 Hypertext Preprocessor
TRANSMETTRE LES DONNÉES
On peut transmettre des données par l’URL
Exemple :
http://www.monsite.com/bonjour.php?nom=Dupont
&prenom=Jean
Le point d'interrogation sépare le nom de la page
PHP des paramètres
On récupère les données dans la page bonjour.php
par :
$_GET['nom']
$_GET['prenom']
2
TRANSMETTRE LES DONNÉES
GET : les données transitent en clair dans la
barre d’adresse, par l'URL.
On les récupère grâce à l'array $_GET
3
LA FONCTION EMPTY
Détermine si une variable est considérée comme
vide. Une variable est considérée comme vide si
elle n'existe pas, ou si sa valeur équivaut à false.
La fonction empty() ne génère pas d'alerte si la
variable n'existe pas.
empty — Détermine si une variable est vide
Donc !empty dit si la variable n’est pas vide
4
LA FONCTION EMPTY
Exemple :
<?php
if (!empty($_GET['prenom’]) &&!empty($_GET['nom']))
{
echo 'Bonjour '. $_GET['prenom'].' '.$_GET['nom'].' !';
}
else
{
// on affiche un message d’erreur
echo 'Il faut renseigner un nom et un prénom !';
}
?> 5
FORMULAIRE
On peut transmettre des données via un
formulaire
POST : les données transiteront en mode cachée
par l'URL, l'utilisateur ne les verra donc pas
passer dans la barre d'adresse. Mais attention ce
ne sera pas crypté.
On les récupère grâce à l'array $_POST
Note :
$_POST et $_GET sont des tableaux associatifs
dits superglobaux 6
LES FORMULAIRES
<form
action="traiterForm1.php"
method="post">
Contrôle de type libellé, zone
de saisie, boutons Entrez votre prénom :
<input type="text"
name="prenom"
placeholder="Ex: prénom"
size="20" maxlenght="30"
/>
<p />
<input type="submit"
value="Envoyer" />
<input type="reset"
value="Annuler" />
</form> 7
LES FORMULAIRES
Les attributs :
Size : taille du champ, donne une idée visuelle de
la taille du champ
Maxlength : nb de caractères max que l’on peut
saisir
Placeholder : pour afficher un contenu en grisé
dans la zone text
8
LES FORMULAIRES
traiterForm1.php
<html>
<head>
<title>Un petit bonjour</title>
</head>
<body>
<?php
if (!empty($_POST['prenom']))
{
echo 'Bonjour '.htmlspecialchars($_POST['prenom']);
}
?>
</body>
</html>
9
FORMULAIRE
<form action=“traiterForm2.php"
method="post">
•Contrôle case à cocher Entrez votre prénom :
<input type="text"
name="prenom"
placeholder="Ex: prénom"
size=“20" maxlenght=“30" />
<br />
Cochez cette case pour un
bonjour plus familier
<input type="checkbox"
name="familier">
<p />
<input type="submit"
value="Envoyer" />
10
<input type="reset"
value="Annuler" />
</form>
LES FORMULAIRES
traiterForm2.php
<?php
if(!empty($_POST['familier'])){
if (!empty($_POST['prenom']))
{
echo 'Salut '.htmlspecialchars($_POST['prenom']);
}
else {
echo "vous avez oublié de saisir un prénom";
}
}
else
{
if (!empty($_POST['prenom']))
{
echo 'Bonjour '.htmlspecialchars($_POST['prenom']);
}
else {
echo "vous avez oublié de saisir un prénom";
}
11
}
?>
LES FORMULAIRES
Boutons radios
12
LES FORMULAIRES
<form action=“traiterForm3.php" method="post">
Entrez votre prénom :
<input type="text" name="prenom" placeholder="Ex: prénom" size="30"
maxlenght="10" />
<p />
<input type="radio" name="politesse" value="1" checked /> Madame<br
/>
<input type="radio" name="politesse" value="2" /> Monsieur<br />
<br />
Cochez cette case pour un bonjour plus familier
<input type="checkbox" name="familier">
<p />
<input type="submit" value="Envoyer" />
<input type="reset" value="Annuler" />
</form>
13
LES FORMULAIRES
traiterForm3.php
<?php
$message="";
if (!empty($_POST["familier"])){$message = "Salut ";}
else{ $message = "Bonjour "; }
switch($_POST["politesse"]) {
case 1 : $message = $message."Madame ";
break;
case 2 : $message = $message."Monsieur ";
break;
}
if (!empty($_POST['prenom']))
{$message = $message.htmlspecialchars($_POST["prenom"]);}
else {$message= "vous avez oublié de saisir un prénom";}
echo $message;
?> 14
LES FORMULAIRES
•Liste déroulante
15
LES FORMULAIRES
<form action=“traiterForm3.php" method="post">
Entrez votre prénom :
<input type="text" name="prenom" placeholder="Ex: prénom" size="30"
maxlenght="10" />
<p />
<select name="politesse" size="1">
<option selected value=1> Mademoiselle</option>
<option value=2> Madame</option>
<option value=3> Monsieur</option>
</select>
<br />
<label>Cochez cette case pour un bonjour plus familier </label>
<input type="checkbox" name="familier" />
<p />
<input type="submit" value="Envoyer" />
<input type="reset" value="Annuler" />
16
</form>
LES FORMULAIRES
•Rangée de boutons
17
LES FORMULAIRES
<form action=“traiterForm4.php" method="post">
Entrez votre prénom :
<input type="text" name="prenom" placeholder="Ex: prénom" size="30"
maxlenght="10" />
<input type="submit" name="validation"
value="Envoyer" />
<input type="submit" name="validation"
value="Expédier" />
<input type="reset" value="Annuler" />
</form>
18
LES FORMULAIRES
traiterForm4.php
<?php
echo "Bonjour ".$_POST["prenom"];
echo "<br />";
echo "Vous avez cliqué sur le bouton
".$_POST["validation"];
?>
Note :Un bouton de formulaire peut être de type
"submit" (envoyer le formulaire), "reset" (annuler la
saisie), ou simplement "button" (faisant appel à un
script javascript par exemple). 19
LES FORMULAIRES
Zone de mot de passe
input type = "password"
Exemple :
<form method="post" action="traite
ment.php">
<p>
<label >Votre pseudo :</label>
<input type="text" name="pseud
o" />
<br />
<label >Votre mot de passe :</la
bel>
<input type="password" name="
pass" id="pass" />
20
</p>
</form>
LES FORMULAIRES
La zone texte multilignes
<textarea>
Exemple :
<form method="post" action="traitement.php">
<p>
<label>Comment pensez-
vous que je pourrais améliorer mon site ?</label>
<br />
<textarea name="ameliorer" id="ameliorer">
</textarea>
</p>
</form> 21
LES FORMULAIRES
<Optgroup> pour faire des sous-listes dans une
liste déroulante
Exemple :
22
LES FORMULAIRES
Exemple :
<form method="post" action="traitement.php">
<p>
<label for="pays">Dans quel pays habitez-vous ?</label><br />
<select name="pays">
<optgroup label="Europe">
<option value="france">France</option>
<option value="espagne">Espagne</option>
<option value="italie">Italie</option>
<option value="royaume-uni">Royaume-Uni</option>
</optgroup>
<optgroup label="Amérique">
<option value="canada">Canada</option>
<option value="etats-unis">Etats-Unis</option>
Etc..
</select>
</p>
</form> 23
LES FORMULAIRES
Maintient de l’état du formulaire
Le script contenant le formulaire est chargé du
traitement des données
L’ensemble de la page est réaffiché après le
traitement : toutes les données saisies sont
effacées
Voir exemple : formulaireAvecTraitement.php
24
LES FORMULAIRES
Pour maintenir l’état initial du formulaire il
suffit de conserver la valeur des champs
Dans notre exemple :
<input type="text" name="prenom" value="<?php
$_POST["prenom"] ?>" size="20" />
Qu’il faudra completer par un test d’existance
pour la première fois
<input type="text" name="prenom" value="<?php
if (!empty($_POST["prenom"])) echo
$_POST["prenom"] ?>" size="20" /> 25
LES FORMULAIRES
Note pour définir le script lui-même comme cible
pour le traitement des données :
action="<?php $_SERVER["PHP_SELF"] ?>«
Voir exemple : maintientFormulaire.php
26
LES FORMULAIRES
L’attribut Autofocus : pour placer le focus sur le
champ désiré
Exemple :
<input type="text" name="prenom" id="prenom" au
tofocus />
le curseur sera par défaut dans le champ prenom
27
LES FORMULAIRES
L’attribut Required : pour rendre un champ
obligatoire
Exemple :
<input type="text" name="prenom" id="prenom" re
quired />
le navigateur indiquera alors au visiteur, si le
champ est vide au moment de l'envoi, qu'il doit
impérativement être rempli
28