Page 1 sur 1

probleme variable get

Posté : 08 juin 2007, 10:38
par Monnier
Salut a tous, voila j'ai un probleme avec les variables get
Je m'en sers tres bien mais le probleme c'est lorque l'utilisateur fait précedent je recupere une nouvelle fois ces variable et sa fausse tout ...
Je voudrais savoir si il y avait une solution pour faire en sorte que l'utilisateur ne fasse pas précedent... comme vider l'historique de navigation du site ou je ne sais pas trop.
Si vous avez une solution ou une fonction qui pourrai m'aider merci :roll:

Posté : 08 juin 2007, 10:51
par iclo
Je ne connais pas de solution côté client pour se prémunir à 100% d'un double envoit.
Une solution est d'identifier de manière unique un envoit: par exemple dans un formulaire qui contient un champ hidden avec un chiffre "unique" (ou aléatoire si on considère que la probabilité que le même chiffre sorte deux fois un court interval de temps est très faible)
Cet identifiant sera stocker dans une session lorsqu'on traitera les données.
Il suffit alors de vérifier que l'identifiant qu'on reçoit n'est pas déja mémorisé et que donc les données non pas déja été traitées.

Posté : 08 juin 2007, 10:58
par Ryle
Pas vraiment... les variables passées en get font partie intégrale de l'url demandée et seront renvoyées à chaque fois que l'url est appellée... Le même problème se posera si l'envoi est fait en post, à ceci près que le navigateur demandera à l'utilisateur s'il veut renvoyer les informations.

Ce que tu peux faire c'est stocker les valeurs que tu récupères en session, et contrôler si la valeur existe déjà quand tu la récupère en get. Sinon tu peux essayer de jouer avec la fonction header pour rediriger l'utilisateur et te débarasser des valeurs passées en get si tu n'en as plus l'usage. La fonction précédente renverra l'utilisateur non pas sur la page de redirection mais sur la page précédent.. chais pas si c'est très clair :

Code : Tout sélectionner

[A] =(envoi des données en get ou post)=> [B] =(redirection avec header)=> [C]
La page B récupères les données envoyées par A, fait son traitement et redirige automatiquement vers la page C. Lorsque l'utilisateur fait précédent depuis la page C il revient sur A et les données ne sont pas renvoyées en B.

Posté : 08 juin 2007, 22:53
par Aureusms
J'ai eu le même problème et j'ai utilisé une astuce en me servant des sessions côté serveur : cela se résume à si $_GET['ma_valeur'] alors $_SESSION['ma_valeur'] = 1; En clair tu indiques a ta variable de session que $_GET['ma_valeur'] a été trouvé puis si elle est retrouvée plus tard comme $_SESSION['ma_valeur'] = 1 tu pourras l'ignorer, la changer enfin faire ce que tu veux. L'avantage : $_SESSION['ma_valeur'] ne s'effacera pas tant que l'utilisateur ne fermera pas son browzer internet.

Posté : 08 juin 2007, 22:55
par Monnier
humm le probleme c'est que je me sert de ma variable get a chaque fois que l'utilisateur clic sur le fil d'ariane et si je fais sa ben sa marchera pu :lol:
Donc que faire :?