GET ou POST : quand utiliser chacun
Comprendre la différence entre HTTP GET et POST en PHP.
GET ou POST : quand utiliser chacun est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.
Méthodes HTTP dans PHP pour le Web
Lorsqu’un navigateur envoie un formulaire HTML, il utilise la méthode HTTP GET ou POST. PHP capture les données envoyées au moyen de superglobales :
$_GET— données ajoutées à l’URL$_POST— données dans le corps de la requête
Méthode GET
GET ajoute les données du formulaire à l’URL sous forme de paramètres de chaîne de requête :
<!-- HTML form -->
<form method="GET" action="search.php">
<input name="query" type="text">
<button type="submit">Search</button>
</form>
<!-- URL becomes: search.php?query=php+tutorial -->
<?php
$q = $_GET['query'] ?? '';
echo 'You searched for: ' . htmlspecialchars($q);Méthode POST
POST envoie les données dans le corps de la requête HTTP, où elles ne sont pas visibles dans l’URL :
<!-- HTML form -->
<form method="POST" action="login.php">
<input name="email" type="email">
<input name="password" type="password">
<button type="submit">Log In</button>
</form>
<?php
$email = $_POST['email'] ?? '';
$password = $_POST['password'] ?? '';Quand utiliser GET
Utilisez GET lorsque :
- la requête est idempotente (sans effet secondaire) ;
- les données peuvent apparaître dans l’URL : recherches, filtres, pagination ;
- vous souhaitez des URL pouvant être ajoutées aux favoris ou partagées ;
- les données ne sont pas sensibles.
Quand utiliser POST
Utilisez POST lorsque :
- la requête modifie l’état du serveur (création, mise à jour ou suppression) ;
- les données sont sensibles (mots de passe, informations personnelles) ;
- vous envoyez une grande quantité de données (fichiers, texte long) ;
- vous ne voulez pas que les navigateurs ou les serveurs mandataires mettent les données en cache.
Limites de longueur de GET
Les requêtes GET sont soumises à des limites de longueur d’URL (en pratique, généralement environ 2 000 caractères). POST n’a pas de limite pratique, à l’exception de celles définies dans la configuration du serveur :
<?php
// php.ini settings for POST limits:
// post_max_size = 8M (total POST body size)
// upload_max_filesize = 2M
// Check current limits at runtime:
echo ini_get('post_max_size'); // 8M
echo ini_get('upload_max_filesize'); // 2MSuperglobale $_REQUEST
$_REQUEST fusionne $_GET, $_POST et $_COOKIE. C’est pratique, mais la source des données est moins claire :
<?php
// Works for both GET and POST but is ambiguous
$name = $_REQUEST['name'] ?? '';
// Better: be explicit about the expected method
$name = match($_SERVER['REQUEST_METHOD']) {
'GET' => $_GET['name'] ?? '',
'POST' => $_POST['name'] ?? '',
default => '',
};Vérifier la méthode de la requête
Vérifiez toujours la méthode de la requête avant de traiter les données du formulaire :
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
if (!empty($name)) {
echo 'Hello, ' . htmlspecialchars($name);
}
} else {
// Show empty form
}HTTPS et sécurité des données
Même avec POST, les données sont visibles en texte brut si vous n’utilisez pas HTTPS. Règles de sécurité principales :
- Utilisez toujours HTTPS en production
- N’envoyez jamais de mots de passe avec GET
- POST sur HTTP reste dangereux : HTTPS chiffre également le corps de la requête
Rediriger après POST (modèle PRG)
Après un POST réussi, redirigez vers une requête GET afin d’éviter les envois en double lors de l’actualisation de la page :
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Process the form...
$id = saveToDatabase($_POST);
// Post-Redirect-Get (PRG) pattern
header('Location: /success.php?id=' . $id);
exit;
}Formulaires multipart pour l’envoi de fichiers
Pour téléverser des fichiers, le formulaire doit utiliser enctype="multipart/form-data" avec POST :
<!-- Required for file uploads -->
<form method="POST" action="upload.php"
enctype="multipart/form-data">
<input type="file" name="avatar">
<button type="submit">Upload</button>
</form>
<?php
$file = $_FILES['avatar'];
echo $file['name']; // original filenameVérification rapide
Quelle méthode HTTP devez-vous utiliser pour envoyer un formulaire de connexion contenant un nom d’utilisateur et un mot de passe ?
Récapitulatif : GET ou POST
Différences principales :
- GET — dans l’URL, ajoutable aux favoris, sans effet secondaire, taille limitée
- POST — dans le corps de la requête, adapté aux données sensibles, sans limite d’URL
- Utilisez toujours HTTPS pour protéger les données de GET comme de POST
- Vérifiez
$_SERVER['REQUEST_METHOD']avant le traitement - Appliquez le modèle PRG pour éviter les envois POST en double
Questions Fréquemment Posées
La leçon « GET ou POST : quand utiliser chacun » est-elle gratuite ?
Oui — le texte complet de « GET ou POST : quand utiliser chacun » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « GET ou POST : quand utiliser chacun » ?
Comprendre la différence entre HTTP GET et POST en PHP. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « GET ou POST : quand utiliser chacun » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- GET ou POST : quand utiliser chacun
- Lire les données de formulaire avec les superglobales
- Techniques de validation des entrées
- Nettoyer les entrées utilisateur