Donc voici le principe :
Une variable dite de "controle" est utilisée, elle est gardée en base de données ou en session. Cette variable n'a pas deux fois la même valeur (enfin on suppose). On a donc le shéma suivant ultra simplifié suivant :
On génère une valeur aléatoire, un rand(1000000, 9999999) suffit . On stock cette valeur dans notre variable de controle pour pouvoir s'en servir à la page suivante.
Ensuite il faut passer cette valeur de page en page pour pouvoir effectuer les controles. On utilise donc la méthode POST (préférable) ou la méthode GET (moins joli pour les url).
Maintenant, je vais vous détailler le controle car c'est là que réside l'astuce Donc il suffit simplement de comparer la variable stockée (en session ou en bdd) avec celle reçue soit par la méthode GET soir par la méthode POST. Si l'égalitée est vraie alors il n'y a pas eut de double clic, on génère une valeur pour la variable de controle. Si l'égalité est fausse alors il suffit soir de complètement vider $_POST et $_GET ou alors de seulement supprimer de ces deux tableaux les variables qui "posent problème".
Donc si on zoom arrière et que l'on ne se place plus au niveau de deux pages mais de toute une session (session de visite et non php ; même si les deux se recouvrent) on a une chose du genre :
------Page1--------------Page2---------------Page3
code 1 ---> code1 - code2 ---> code2 - code3 ---> code2
--------Ok-----------------Ok-----------------Ko!
Voilà j'espère avoir été clair (pour une fois )
Une variable dite de "controle" est utilisée, elle est gardée en base de données ou en session. Cette variable n'a pas deux fois la même valeur (enfin on suppose). On a donc le shéma suivant ultra simplifié suivant :
- Controle
- Génération d'une nouvelle valeur
On génère une valeur aléatoire, un rand(1000000, 9999999) suffit . On stock cette valeur dans notre variable de controle pour pouvoir s'en servir à la page suivante.
Ensuite il faut passer cette valeur de page en page pour pouvoir effectuer les controles. On utilise donc la méthode POST (préférable) ou la méthode GET (moins joli pour les url).
Maintenant, je vais vous détailler le controle car c'est là que réside l'astuce Donc il suffit simplement de comparer la variable stockée (en session ou en bdd) avec celle reçue soit par la méthode GET soir par la méthode POST. Si l'égalitée est vraie alors il n'y a pas eut de double clic, on génère une valeur pour la variable de controle. Si l'égalité est fausse alors il suffit soir de complètement vider $_POST et $_GET ou alors de seulement supprimer de ces deux tableaux les variables qui "posent problème".
Donc si on zoom arrière et que l'on ne se place plus au niveau de deux pages mais de toute une session (session de visite et non php ; même si les deux se recouvrent) on a une chose du genre :
------Page1--------------Page2---------------Page3
code 1 ---> code1 - code2 ---> code2 - code3 ---> code2
--------Ok-----------------Ok-----------------Ko!
Voilà j'espère avoir été clair (pour une fois )
Etudiant en logiciels Libres