[PHP] Comment éviter : F5 => Formulaire resoumis

Comment éviter : F5 => Formulaire resoumis [PHP] - PHP - Programmation

Marsh Posté le 30-12-2003 à 00:11:19    

Voilà le pb que je rencontre : j'ai un formulaire pour insérer des données dans une BD. Si l'utilisateur le soumet, puis sur la page d'arrivée il fait F5 pour rafraichir la page, le formulaire est resoumis avec les mêmes données d'où double insertion ... commen l'éviter ? merci.

Reply

Marsh Posté le 30-12-2003 à 00:11:19   

Reply

Marsh Posté le 30-12-2003 à 00:36:10    

C'est pour ça qu'ici quand tu postes un messages il y a une page intermédiaire "votre message a été validé" je suppose... Tu peux toujours t'en inspirer :D
Sinon tu peux faire une redirection vers la page d'arrivée avec un header('location: ...')


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-12-2003 à 00:46:15    

c'est le problème lorsque l'utilisateur fait un back sur son navigateur. la solution est simple. au lieu de faire un fichier de formulaire qui envoie vers un fichier d'insertion bdd et affichage, il faut faire 3 fichiers. quand tu as inséré tu redirige simplement vers la page d'affichage

Reply

Marsh Posté le 30-12-2003 à 09:29:03    

avec des jetons
tu generes un jeton pour l'utilisateur à l'arrivée sur le formulaire. et tu le de detruit quand tu moulines les infos du formulaire. si l'utilisateur fait un refresh : pas de jeton -> DTC
bon après, fo affiner. verifier par ex. que le jeton utilisé appartient bien à l'utilisateur qui s'en sert où qu'il à bien été generé pour le formulaire en cours.


Message édité par Schimz le 30-12-2003 à 09:33:57
Reply

Marsh Posté le 30-12-2003 à 09:40:45    

elle est où la fente pour le jeton ? [:tinostar]
 
Edit: ouais, je sais, :dtc:
 
[:neowen]


Message édité par RiderCrazy le 30-12-2003 à 09:41:30
Reply

Marsh Posté le 30-12-2003 à 09:48:36    

Ou tu mets à la génération de la page avec le formulaire un champ caché avec un identifiant unique, et si cet identifiant a déjà été envoyé tu ne prends pas en compte le POST suivant...


---------------
On ne vit qu'une fois, mais pour qui sait vivre, une seule fois suffit (Merril Stubbing)
Reply

Marsh Posté le 30-12-2003 à 10:07:14    

schimz a écrit :

avec des jetons
tu generes un jeton pour l'utilisateur à l'arrivée sur le formulaire. et tu le de detruit quand tu moulines les infos du formulaire. si l'utilisateur fait un refresh : pas de jeton -> DTC
bon après, fo affiner. verifier par ex. que le jeton utilisé appartient bien à l'utilisateur qui s'en sert où qu'il à bien été generé pour le formulaire en cours.


 
j'avoue que je n'ai pas bien compris : il se matérialise comment ton jeton ?
 
merci pour votre aide en tous cas  :jap:

Reply

Marsh Posté le 30-12-2003 à 10:21:31    

Lex a écrit :


 
j'avoue que je n'ai pas bien compris : il se matérialise comment ton jeton ?
 
merci pour votre aide en tous cas  :jap:  


ah bah c'est toi qui vois hein !
par les sessions, par une BdD, en dur ds le code html (bof) ou par cookies (re-bof)
si l'utilisateur est indentifié en BdD, un champ ds la table user ou mieux, une table jeton (pour gerer plusieurs jetons en même temps pour un utilisateur). sinon si l'utilisateur est anonyme : avec les sessions PHP.


Message édité par Schimz le 30-12-2003 à 10:21:55
Reply

Marsh Posté le 30-12-2003 à 10:25:55    

ah ok je vois mieux ! en effet, une session PHP me parrait plus adaptée  :jap: merchi


Message édité par Lex le 30-12-2003 à 10:26:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed