Cours 22 - Pattern POST/REDIRECT/GET

Objectifs

Déroulement

  1. Introduction
  2. 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 :
2021-03-28_14-07-28

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.
2021-03-28_14-08-55

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();
}