Comment empêcher la resoumission du formulaire lors de l'actualisation de la page (F5/CTRL+R)
P粉151466081
2023-08-29 11:37:35
<p>J'ai un formulaire simple qui soumet du texte à ma table SQL. Le problème est qu'une fois que l'utilisateur a soumis le texte, il peut actualiser la page et soumettre à nouveau les données sans remplir à nouveau le formulaire. Je peux rediriger l'utilisateur vers une autre page après avoir soumis le texte, mais je souhaite que l'utilisateur reste sur la même page. </p>
<p>Je me souviens avoir lu quelque chose sur le fait de donner à chaque utilisateur un identifiant de session unique et de le comparer à une autre valeur, ce qui a résolu le problème que j'avais, mais j'ai oublié où il se trouvait. </p>
Je tiens également à souligner que vous pouvez utiliser des méthodes JavaScript
window.history.replaceState
pour empêcher les nouvelles soumissions sur les boutons d'actualisation et de retour.Preuve de concept : https://dtbaker.net/files/ Prevent-post-resubmit.php(le lien n'est plus valide)Je recommande toujours la méthode Post/Redirect/Get, mais il s'agit d'une nouvelle solution JS.
Utilisez des modèles de publication/redirection/obtention. http://en.wikipedia.org/wiki/Post/Redirect/Get
Sur mon site Web, je stockerai le message dans un cookie ou une session, le redirigerai après la publication, lirai le cookie/la session, puis effacerai la valeur de cette session ou de cette variable de cookie.