Empêcher le submit par [F5]

Le traitement PHP d’un formulaire peut nécessiter la vérification que l’utilisateur n’a pas pressé la touche [F5] pour soumettre le formulaire à nouveau. En effet, si le fait de soumettre un formulaire provoque une requête à la base de données insert into, vous préféreriez que l’insertion n’aie pas lieu 2 fois.

Le principe pour contrer les [F5] est d’utiliser un champ hidden (appelé « process » dans mon exemple) contenant le Unix timestamp du moment de la génération du formulaire par le serveur (microtime(true) en PHP). Ensuite, il reste à créer une fonction qui va :

  • comparer la valeur de process postée avec une variable Session appelée « process ». Si la valeur de la variable process postée est égale à la valeur stockée dans la variable Session, la fonction renvoie l’erreur : « Veuillez utiliser le bouton Submit »
  • si ces valeurs sont différentes, le formulaire est traité, la base de données modifiée au besoin, puis stockez la valeur de la variable process postée dans la variable Session ($_SESSION["process"]).

Laisser un commentaire

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

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>