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"]
<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éesmethod : POST ou GETname : le nom de la variable PHP ($_POST["prenom"])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 | 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"];
<?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";
<?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>";
}
Crée un formulaire avec 3 champs : nom, âge, ville.
Affiche une phrase du type : "Alice, 17 ans, habite à Namur."