PHP : Prévention de la publication lors de l’actualisation (F5)

Après réception et traitement des données postées via un formulaire avec PHP, si le visiteur rafraîchit accidentellement ou intentionnellement la page, il lui sera demandé « Voulez-vous envoyer à nouveau les mêmes données ? » Une fenêtre d’avertissement peut apparaître. Il existe de nombreuses façons de s’en débarrasser.

Généralement, la méthode préférée consiste à rediriger les données vers une autre page après le traitement. Dans certains cas, vous ne voudrez peut-être pas rediriger vers une autre page ou actualiser la page en PHP. C’est ce que je pense être sain.

Avec l’extrait suivant (en supprimant session_start() s’il a déjà été exécuté), vous pouvez supprimer cet avertissement et empêcher les utilisateurs de publier à nouveau les mêmes données.

session_start();
if( strcasecmp($_SERVER['REQUEST_METHOD'],"POST") === 0) {     
$_SESSION['postdata'] = $_POST;     
header("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']); exit;  
}  

if( isset($_SESSION['postdata'])) { 
$_POST = $_SESSION['postdata'];      
unset($_SESSION['postdata']); 
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *