Quand un utilisateur remplit un formulaire HTML et le soumet, les données doivent être transmises au serveur. En PHP, ces données sont automatiquement récupérées dans des tableaux superglobaux associatifs : $_GET et $_POST.
$_GET et $_POST ?global.$_GET |
$_POST |
|
|---|---|---|
| Méthode | Données envoyées dans l’URL | Données envoyées dans le corps de la requête |
| Visibilité | Visible dans la barre d’adresse | Invisible |
| Sécurité | Moins sécurisé (car visible) | Plus adapté aux données sensibles |
| Taille limite | Limitée par l’URL (~2000 caractères) | Illimitée (dépend du serveur) |
| Utilisation typique | Requêtes simples, liens de recherche, filtres | Formulaires, connexions, commentaires |
$_GET<form action="recherche.php" method="get">
<input type="text" name="q" placeholder="Recherche...">
<input type="submit" value="Chercher">
</form>
recherche.php :<?php
$motCle = $_GET['q'];
echo "Vous avez recherché : $motCle";
?>
Résultat dans l’URL après envoi :
recherche.php?q=php
➡️ Ici, $_GET['q'] contient la valeur saisie dans le champ de recherche.
$_POST<form action="contact.php" method="post">
<input type="text" name="nom">
<textarea name="message"></textarea>
<input type="submit" value="Envoyer">
</form>
contact.php :<?php
$nom = $_POST['nom'];
$message = $_POST['message'];
echo "Message reçu de $nom :<br>";
echo nl2br(htmlspecialchars($message));
?>
➡️ Les données ne sont pas visibles dans l’URL, mais disponibles dans $_POST.
if (isset($_POST['nom'])) {
$nom = $_POST['nom'];
}
$nom = htmlspecialchars($_POST['nom']);
$nom = $_POST['nom'] ?? "Invité";
| Objectif | Méthode conseillée |
|---|---|
| Rechercher une info (sans effet côté serveur) | GET |
| Lien partageable ou bookmarkable | GET |
| Envoyer un mot de passe, des infos personnelles | POST |
| Modifier des données (ajouter, supprimer...) | POST |
⚠️ Une règle importante du protocole HTTP :
Une requêteGETne doit jamais modifier les données côté serveur. Elle est censée être sûre (sans effet secondaire).
$_GET et $_POST sont des superglobaux PHP qui permettent d’accéder aux données soumises par un formulaire.GET pour récupérer, POST pour modifier.