get et pages perdues

Invité
Invité n'ayant pas de compte PHPfrance

16 avr. 2007, 01:06

Bonjour à tous,
j'utilise $_GET pour passer des variables de form à une page de traitement.
Tout se passe bien mais quand je fais un "page précédente" avec mon navigateur, je ne reviens pas au formulaire.
Le navigateur me dit que la page a expiré.
Savez vous ce qui peut créer ce problème?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 avr. 2007, 10:01

Il est possible qu'avec un "page précédente" les variables passées en URL sont perdues.

Si tu passes par un formulaire pourquoi ne pas utiliser la méthode POST ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 avr. 2007, 11:25

Objection votre honneur... si c'est dans l'url, la page affichée les prends nécessairement en compte (c'est d'ailleurs l'une des propriétés du get, avantage ou inconvénient, ca dépend de ce qu'on veut en faire :)).

S'il te dit que la page a expiré et qu'elle ne peut être réaffichée sans le renvoi d'information (page blanche et message type), c'est que pour arriver sur cette page (donc vraissemblablement ton formulaire) tu as du utiliser la méthode post (ce qui n'empêche pas d'avoir pu passer également en plus des paramètres dans l'url).

Il suffit donc de ne pas passer de données en post pour arriver sur le formulaire (ou de ne pas le recharger en post dans le cas de listes liées par exemple) pour ne plus avoir ce message du navigateur :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

18 avr. 2007, 08:56

est il possible dans ce cas de prolonger le délai d'expiration de la page?

jed
Eléphant du PHP | 218 Messages

18 avr. 2007, 09:31

Non je ne pense pas, mais le transfert de données via l'url n'est pas trés sécurisé et pas non plus trés pratique, la preuve... Utilise plutôt $_POST comme te l'ont suggéré charabia et Ryle ;)