Doublon d'information après un rafraichissement du formulaire.

Résolu/Fermé
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 - 17 déc. 2012 à 17:58
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 - 17 déc. 2012 à 18:15
Bonjour,
Je suis débutant à la création de site web et je souhaite faire un petit intranet.
Je problème que je rencontre est que lorsqu'un utilisateur décide de rafraichir un formulaire qui a été validé (insérer dans la BD) et dont le temps de réponse l'a poussé à rafraichir, il ya dublon d'information dans la BD. Pour les tables dont la clé est générer par l'utilisateur, je peux controlé cela en vérifiant s'il existe déjà une entré avec cet clé. mais pour celle auto incrément. aucun possibilité.
Existe t-il une excellente manière d'embécher de tels doublon d'information après rafraichissement du formulaire. Doublon d'information dans un intranet, c'est la pire des chose qui puisse arrivé.
Merci d'avance pour vos réponses.




1 réponse

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
17 déc. 2012 à 18:11
Tu peut utilise un token.

A l'affichage du formulaire, tu génère une suite de chiffre/lettre de façon aléatoire.
Tu stock ce résultat (le token) dans une session et dans un champs input de type hidden.

A l'envoi du formulaire, tu vérifie que le champ caché est là, que la session est aussi présente, et que les deux sont identique.

Si l'un d'eux est absent ou si les deux ne concorde pas -> message d'erreur.

Si tout est bon -> On efface la session.

Si il rafraîchit, la session n'existera plus, donc il ne passera pas la validation.
0
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
17 déc. 2012 à 18:15
merci. je pense que je peux déjà fermer le sujet et considérer coe résolu.
C'est génial comme astuce.
0