2012-10-18 7 views
4

J'ai une application PHP où les utilisateurs peuvent demander un bonus. Mais il y a une page de confirmation avant que le code de remboursement de bonus s'exécute. Le problème est que dans IE, si vous cliquez sur f5 juste après avoir cliqué sur le bouton continuer, la page de confirmation s'actualise tandis que le code de rachat de bonus a déjà été déclenché par le bouton continuer et passe réellement par. Mais parce que l'utilisateur voit toujours la page de confirmation, il appuie de nouveau sur le bouton continuer et maintenant ils reçoivent une erreur car ils sont déjà enregistrés.frapper f5 après avoir cliqué sur le bouton soumettre

Y at-il un moyen que je peux désactiver le bouton f5 en utilisant javascript? Est-ce la meilleure façon de s'y prendre? J'ai essayé de nombreux scripts que j'ai trouvés en ligne pour le faire, mais aucun d'entre eux ne l'atteint. Y a-t-il une meilleure façon de m'y prendre? Peut-être du côté de l'application?

+4

La vérification du côté serveur (dans la base de données) serait meilleure. –

+1

Pouvons-nous voir le code pertinent? – SomeKittens

+0

Et qu'en est-il de ctrl-r shirt-r clic droit, bouton dans le navigateur? Tu ne peux pas l'arrêter. On dirait que vous avez besoin d'une meilleure mise en place avec la rédemption. Déterminez ce qui le cause. – epascarello

Répondre

1

Éditer: Si le résultat de la réclamation d'un bonus est databasé, vous pouvez charger les revendications existantes sur votre écran de confirmation et tester qu'il existe déjà.


Edit: l'autre astuce que vous pouvez faire est serailize/json_encode $ _POST et produire un hachage de cela, le stocker dans la base de données ou d'une session utilisateur et effectuer le test.


Je générer et base de données un jeton à usage unique (dièse) pour la forme comme un champ caché, si les données de poste est de nouveau sumbited, le jeton aurait déjà été consommé, et vous pouvez annuler la demande de poste .

Questions connexes