PHP : Formulaires et méthodes HTTP

    5tq

PHP : Formulaires

Le principe

Un formulaire HTML envoie des données au serveur.
PHP les reçoit dans les variables superglobales $_POST ou $_GET.

[Navigateur] -- formulaire rempli --> [Serveur PHP]
                                           ↓
                                      $_POST["nom"]

Un formulaire minimal

<form action="traitement.php" method="POST">
    <input type="text" name="prenom" placeholder="Ton prénom">
    <button type="submit">Envoyer</button>
</form>
  • action : quel fichier PHP reçoit les données
  • method : POST ou GET
  • name : le nom de la variable PHP ($_POST["prenom"])

Lire les données en PHP

traitement.php

<?php

// On vérifie que le formulaire a bien été soumis
if ($_SERVER["REQUEST_METHOD"] === "POST") {

    // On lit la valeur du champ "prenom"
    $prenom = $_POST["prenom"];

    // On l'affiche (protection contre le XSS avec htmlspecialchars)
    echo "Bonjour, " . htmlspecialchars($prenom) . " !";

} else {
    echo "Aucun formulaire soumis.";
}

GET vs POST

GET POST
Données Dans l'URL (?prenom=Alice) Dans le corps de la requête
Visible Oui, dans la barre d'adresse Non
Longueur Limitée Illimitée
Utilisation Recherche, filtres, navigation Envoi de données, formulaires
// Lire un paramètre GET : http://monsite.test/page.php?id=5
$id = $_GET["id"];      // → "5"

// Lire un champ POST
$email = $_POST["email"];

Vérifier qu'un champ existe

<?php
// isset() vérifie qu'une variable existe et n'est pas null
if (isset($_POST["prenom"])) {
    $prenom = $_POST["prenom"];
} else {
    $prenom = "inconnu";
}

// Version courte avec ??
$prenom = $_POST["prenom"] ?? "inconnu";

Valider les données

<?php
$erreur = "";

if ($_SERVER["REQUEST_METHOD"] === "POST") {

    $prenom = trim($_POST["prenom"] ?? "");   // trim() enlève les espaces début/fin

    if (empty($prenom)) {
        $erreur = "Le prénom est obligatoire.";
    } else {
        echo "Bonjour, " . htmlspecialchars($prenom);
    }
}

if ($erreur) {
    echo "<p style='color:red'>" . $erreur . "</p>";
}

🧪 À tester

Crée un formulaire avec 3 champs : nom, âge, ville.
Affiche une phrase du type : "Alice, 17 ans, habite à Namur."