2010-10-08 4 views

Répondre

0
<?php 

//do stuff with the form input 
//do not display anything 
header('Location: ready.php'); 

?> 

eaysiest et la plus rapide est de rediriger l'utilisateur vers une autre page s'il relodes après redirection pas d'entrée sera envoyé une deuxième fois.

Vous pouvez utiliser $ _SESSION pour stocker l'état des utilisateurs, c'est-à-dire s'il a déjà envoyé le formulaire ou non.

2

Sur le côté client, vous pouvez simplement désactiver le bouton de formulaire après avoir cliqué. Cependant, cela fournit un niveau de sécurité très basique.

Votre prochaine étape serait de l'empêcher via PHP. Dans ce cas, il est préférable d'avoir un champ caché dans votre formulaire qui consiste en un unique et un jeton identifiable. Afin d'effectuer votre vérification, vous devrez conserver une liste de jetons qui ont été utilisés dans le passé et vérifier s'ils ont déjà été soumis.

+0

Je me suis toujours demandé de réactiver le bouton. Devrions-nous utiliser 'setTimeout()' (ou similaire) pour le réactiver si l'utilisateur appuie sur 'stop'. Y a-t-il un 'onabort' pour ce qui est déclenché lorsque les utilisateurs annule la soumission du formulaire? Quoi qu'il en soit, +1 :) – alex

+0

Eh bien, le but de tout cela est de contrecarrer plusieurs soumissions. Si vous fournissez un moyen d'annuler une soumission que de réactiver 'submit' semble être un must du point de vue de l'interface utilisateur. Au lieu de 'setTimeout()', vous pouvez simplement déclencher un événement lorsque vous avez cliqué sur l'abandon. –

+0

Quel événement est déclenché lorsque l'utilisateur interrompt la soumission? – alex

Questions connexes