Cours 22 - Pattern POST/REDIRECT/GET
Table des matières
Objectifs
- Connaître les concepts du pattern POST/REDIRECT/GET
- Être capable d'utiliser le patterne POST/REDIRECT/GET de manière concrète.
Déroulement
- Introduction
- Faire exercice 22
C'est quoi un patron de conception?
Patron Post Redirect Get
source: Martin Vézina et Karine Filiatreault
Aussi nommé « Redirect After Post » est un patron de conception web
permettant de résoudre certains problèmes causés par de multiples
soumissions d’un même formulaire.
Le rafraîchissement d’une page contenant la réponse du serveur suite à
l’envoi d’un formulaire à travers une requête HTTP POST peut provoquer la
re soumission du formulaire.
Cela peut causer des résultats indésirables comme par exemple l’ajout
d’un même item plusieurs fois dans une base de données.
Problème
Problème de re soumission d’un formulaire :
Solution
Pour éviter ce problème :
Au lieu de directement retourner une page, la requête POST retourne une en
tête (header) de redirection avec le statut HTTP 303.
Exemple en PHP
if ($_POST) {
//Code qui ajoute dans la BD par exemple
//Redirige à cette page
header("Location: ". $_SERVER['REQUEST_URI']);
exit();
}
Fonction de redirection
si vous désirez utiliser ma fonction de redirection présentée dans la vidéo!
function redirect(string $url = ""){
if($url == ""){
header("Location: ". $_SERVER['REQUEST_URI']);
}else{
header("Location: ". $url);
}
exit();
}