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"]).