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.