Créez un formulaire qui affichera la somme de deux nombres, en GET puis en POST.
Il est possible d'obtenir le type de la méthode utilisée (GET
ou POST
) dans
le tableau $_SERVER
, pour vérifier par exemple si un formulaire POST
a été soumis.
Essayez var_dump($_SERVER)
pour explorer les champs de ce tableau.
Lisez et testez le code suivant :
<?php
function traitement($prenom)
{
echo 'Vous vous nommez ' . htmlspecialchars($prenom);
echo '<hr/>';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8" />
<title>Formulaire</title>
</head>
<body>
<h1>Formulaire</h1>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (isset($_POST['prenom']))
{
// Le formulaire est valide et bien rempli, appel du traitement
// sur les données
traitement($_POST['prenom']);
}
}
?>
<form method="post">
Votre prénom :
<input type="text" name="prenom" /><br />
<hr />
<input type="submit" value="Envoyer" />
</form>
</body>
</html>
1. Compréhension
A) Comment est detecté le fait que le formulaire a été posté ?
B) A quoi correspond ce test vis à vis du protocole HTTP ?
C) Pourquoi la fonction htmlspecialchars() est utilisée ici ?
2. Ajout d'un champ
Ajoutez un champ nom
au formulaire. Lorsque le formulaire est soumis, si les deux champs sont remplis,
la page devra indiquer: "Vous vous nommez [Prénom] [Nom]"
.
3. Un peu de validation
Ajoutez maintenant un champ email
. N'oubliez surtout pas comment fonctionne le protocole HTTP, même en
utilisant le type de champ HTML5 email
, le client pourra toujours transmettre des données arbitraires via une
requête POST
. C'est pour cela qu'il faut impérativement vérifier coté serveur que l'adresse fournie est
bien formée, vous pourrez utiliser la fonction PHP filter_var().
4. Menu déroulant
Ajoutez un champs "Genre" sous forme de menu déroulant (Homme, Femme). Le genre sera affiché dans le message après traitement.
5. Cases à cocher
Ajoutez des cases à cocher permettant à l'utilisateur de séléctionner les langages de programmation qu'il connaît. Par exemple:
Les langages seront affichés dans le message après traitement.
Si vous utilisez languages[]
dans l'attribut name
des cases à cocher, vous obtiendrez un tableau, bien
plus pratique que de créer une case avec un nom différent par langage!
6. Pré-remplissage
Si l'utilisateur veut modifier ses choix (par exemple si il a fait une erreur, ou que le serveur déclenche une erreur de validation parce que son e-mail n'est pas correct etc.), constatez que le formulaire redevient vide après un envoi.
Faites en sorte qu'il soit re-rempli avec les choix de l'utilisateur.
Créez une page qui affiche le calendrier du mois en construisant un tableau HTML à l'aide de code PHP.
Faites en sorte que l'on puisse naviguer entre les mois et les années.