2010-06-25 3 views
3

Je comprends que les messages doubles a toujours été un problème avec les formulaires. J'utilise la méthode côté serveur de jeton pour gérer ce problème, mais je trouve que cela ne semble pas fonctionner correctement. J'ai configuré le système pour créer un jeton unique pour chaque formulaire, puis enregistrer ce jeton dans une session après qu'elle a été publiée. La SESSION est en fait un tableau de toutes les formes que l'utilisateur a déjà posté (à réinitialiser quand la SESSION expire), et à chaque soumission, le système vérifie in_array() pour voir si ce formulaire a déjà été posté. Si oui, alors il les arrête.Formulaire Double publication numéro

Apparemment, en production, le système ne peut pas enregistrer le jeton terminé dans la SESSION assez rapidement pour gérer les doubles-clics sur le bouton d'envoi. Donc revoir une ancienne page est bien géré, mais le double clic immédiat de l'envoi crée un problème.

Vous ne savez pas ce que je peux faire pour résoudre ce problème.

+1

[en.wikipedia.org/wiki/Post/Redirect/Get](http://en.wikipedia.org/wiki/Post/Redirect/Get) –

Répondre

1

Que diriez-vous de désactiver le bouton d'envoi immédiatement après avoir cliqué (via Javascript, avec un gestionnaire onClick)? Cela ne résoudra évidemment pas tous les problèmes, mais il pourrait couvrir les cas où le système n'est pas assez rapide pour enregistrer le jeton dans SESSION.

0

J'ai eu ce problème avec quelque chose d'interne pour l'entreprise pour laquelle je travaille. D'après mon expérience, les gens cliquent plusieurs fois parce qu'ils ne pensent pas que quelque chose se passe. Ce que j'ai fait est de supprimer la possibilité de soumettre le formulaire et d'afficher une sorte de message disant que l'information est en cours de traitement.

Divs pop-up et juste en désactivant le bouton fonctionnent bien.

Questions connexes