Manipulation de formulaires HTML avec PHP — Correction d'exercices

Voici des propositions de solutions en mode console (via readline()). N’hésite pas à les adapter.

#1 — Méthode GET

Crée un formulaire simple envoyant un 'nom' via GET et affiche-le.

Voir le corrigé
<!-- Formulaire -->
<form method="GET">
    <input type="text" name="nom" placeholder="Votre nom">
    <button>Envoyer</button>
</form>

<?php
if (isset($_GET['nom'])) {
    echo "Bonjour " . htmlspecialchars($_GET['nom']);
}
?>

#2 — Méthode POST

Crée un formulaire de connexion (login/password) via POST.

Voir le corrigé
<form method="POST">
    <input type="text" name="login" placeholder="Login">
    <input type="password" name="pass" placeholder="Password">
    <button>Connexion</button>
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    echo "Formulaire soumis !";
}
?>

#3 — Sécurisation XSS

Montre pourquoi et comment utiliser htmlspecialchars() sur l'affichage des données.

Voir le corrigé
<?php
$message = "<script>alert('Hacked')</script>";
// Mauvais : echo $message;
// Bon :
echo htmlspecialchars($message);
?>

#4 — Input type number

Récupère un âge via un champ number et vérifie s'il est numérique avec is_numeric().

Voir le corrigé
<form method="POST">
    <input type="number" name="age">
    <button>Envoyer</button>
</form>
<?php
if (isset($_POST['age']) && is_numeric($_POST['age'])) {
    echo "Âge valide : " . $_POST['age'];
}
?>

#5 — Boutons radio

Gère un choix de civilité (M. ou Mme) avec des boutons radio.

Voir le corrigé
<form method="POST">
    <label><input type="radio" name="civilite" value="M."> M.</label>
    <label><input type="radio" name="civilite" value="Mme"> Mme</label>
    <button>Valider</button>
</form>
<?php
if (isset($_POST['civilite'])) {
    echo "Civilité : " . $_POST['civilite'];
}
?>
Besoin d'aide ?
Tuteur Virtuel
Bonjour ! Je suis votre tuteur virtuel. Comment puis-je vous aider avec ce cours aujourd'hui ?
Historique des conversations
Chargement...