Comment empécher l'actualisation d'une page?
anne-b
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Droopy_ Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Droopy_ Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai créé un site de jeux où lorsqu'un joueur gagne un cadeau un formulaire apparait pour qu'il saisisse ses coordonnées et valide, mais si il actualise j'aurai sur ma base qu'il a gagné 2 cadeaux, et si il clique sur précédent il revient au formulaire.
j'aimerais savoir comment faire pour empécher l'actualisation et précédent.
merci d'avance si vous avez des réponses
j'ai créé un site de jeux où lorsqu'un joueur gagne un cadeau un formulaire apparait pour qu'il saisisse ses coordonnées et valide, mais si il actualise j'aurai sur ma base qu'il a gagné 2 cadeaux, et si il clique sur précédent il revient au formulaire.
j'aimerais savoir comment faire pour empécher l'actualisation et précédent.
merci d'avance si vous avez des réponses
A voir également:
- Comment empécher l'actualisation d'une page?
- Comment supprimer une page sur word - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Comment créer une page facebook - Guide
- Comment traduire une page - Guide
- Page d'accueil - Guide
5 réponses
Salut, c'est impossible d'empêcher une actualisation, c'est le navigateur qui gère ca, par contre, ce que tu devrais faire, c'est 2 pages, une qui contient le formulaire, et l'autre qui traite les données. Tu peu met une petite protection sur la page qui traite les données, genre si c'est la meme adresse ip qui re-remplis le formulaire, il y a aucune inscription dans la bdd.
merci pour ta réponse,
le formulaire et le traitement de données sont sur la même page, donc je vais devoie les séparer.
mais si je mets une protection en détectant l'adresse ip je saurai pas si il gagne un 2eme cadeau de vrai
le formulaire et le traitement de données sont sur la même page, donc je vais devoie les séparer.
mais si je mets une protection en détectant l'adresse ip je saurai pas si il gagne un 2eme cadeau de vrai
2 cadeaux, c'est généreux ça !! Personnellement j'aime bien quand tout est séparé, je me perd moins dans mon code. Ce que tu peux faire, c'est un update de ta base de donnée si l'adresse ip ou le nom est le même. Ça t'évite d'avoir plusieurs champs pour la même personne.
pas mal tout ça, je vais essayer de le faire comme ça mais si jamais t'as une meilleure idée n'hésite pas
merci bien
merci bien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Idée:
Tu génères un nombre aléatoire que tu mets dans ton formulaire (dans un champs hidden) et que tu conserves dans ta base dans une table des numéros de cadeaux non utilisés.
Quand tu traites la demande, tu utilises ce numéro pour vérifier l'unicité du cadeau,
puis tu supprimes le numéro de la table des non utilisés.
Script 1 : Vérification du cadeau dans les non utilisés -> Ok
Script 1 : Suppression du cadeau dans les non utilisés
Script 1 : Création du cadeau dans la table des cadeaux
Script 2 : Vérification du cadeau dans les non utilisés -> Pas Ok
Le problème là dedans c'est de gérer l'atomicité. La vérification et la suppression doivent être faites sans qu'un autre script ne fasse la vérification entre temps (car il aurait aussi un oui).
Ne jamais oublier que les scripts peuvent s'exécuter en parallèle :
Script 1 : Vérification du cadeau dans les non utilisés -> Ok
Script 2 : Vérification du cadeau dans les non utilisés -> Toujours Ok !!!
Script 1 : Création du cadeau dans la table des cadeaux
Script 2 : Création du cadeau dans la table des cadeaux
Script 1 : Suppression du cadeau dans les non utilisés
Script 2 : Suppression du cadeau dans les non utilisés -> N'existe plus !!!
Pour ça, il est pratique d'utiliser soit le blocage (locking) de la base de données (niveau table ou ligne)
soit une transaction pour les bd qui le gèrent :
Script 1 : Blocage de la ligne/table/base
Script 1 : Vérification du cadeau dans les non utilisés -> Ok
Script 2 : Vérification du cadeau dans les non utilisés -> En attente de deblocage
Script 1 : Creation du cadeau dans la table des cadeaux
Script 1 : Suppression du cadeau dans les non utilisés
Script 1 : Déblocage de la ligne/table/base
Script 2 : Vérification du cadeau dans les non utilisés-> Pas Ok
Tu génères un nombre aléatoire que tu mets dans ton formulaire (dans un champs hidden) et que tu conserves dans ta base dans une table des numéros de cadeaux non utilisés.
Quand tu traites la demande, tu utilises ce numéro pour vérifier l'unicité du cadeau,
puis tu supprimes le numéro de la table des non utilisés.
Script 1 : Vérification du cadeau dans les non utilisés -> Ok
Script 1 : Suppression du cadeau dans les non utilisés
Script 1 : Création du cadeau dans la table des cadeaux
Script 2 : Vérification du cadeau dans les non utilisés -> Pas Ok
Le problème là dedans c'est de gérer l'atomicité. La vérification et la suppression doivent être faites sans qu'un autre script ne fasse la vérification entre temps (car il aurait aussi un oui).
Ne jamais oublier que les scripts peuvent s'exécuter en parallèle :
Script 1 : Vérification du cadeau dans les non utilisés -> Ok
Script 2 : Vérification du cadeau dans les non utilisés -> Toujours Ok !!!
Script 1 : Création du cadeau dans la table des cadeaux
Script 2 : Création du cadeau dans la table des cadeaux
Script 1 : Suppression du cadeau dans les non utilisés
Script 2 : Suppression du cadeau dans les non utilisés -> N'existe plus !!!
Pour ça, il est pratique d'utiliser soit le blocage (locking) de la base de données (niveau table ou ligne)
soit une transaction pour les bd qui le gèrent :
Script 1 : Blocage de la ligne/table/base
Script 1 : Vérification du cadeau dans les non utilisés -> Ok
Script 2 : Vérification du cadeau dans les non utilisés -> En attente de deblocage
Script 1 : Creation du cadeau dans la table des cadeaux
Script 1 : Suppression du cadeau dans les non utilisés
Script 1 : Déblocage de la ligne/table/base
Script 2 : Vérification du cadeau dans les non utilisés-> Pas Ok