Refresh lors du retour à la pase suivante non désiré [PHP-MySQL] - Programmation
Marsh Posté le 11-03-2002 à 15:47:49
tu fais un lien vers ta page formulaire en rebalancant en parametre les valeurs des champs
exemple :
<a href="toto.php?champs1=toto&champs2=tata">
et dans ta page php tu initialise tes inputs :
if(isset($champs1)){
<input type="text" name="champs1" value="$champs1">
....
Marsh Posté le 11-03-2002 à 16:15:54
Ok mais mon user il utilise le bouton BACK alors il doit y avoir moyen de ne pas réexécuter le .php à partir du serveur lors du back.
Je sais c'est tordu mais bon...
Marsh Posté le 11-03-2002 à 16:19:59
nope, si tu utilises le bouton back tu ne peux pas avoir d'influence sr le contenu de la page, elle est normalement dans le cahce. Et même si tu met dans tes méta-tag une balise qui force le rechargement de la page (assez aléatoire + problème de proxy), la page est ré-appelée comme la première fois.
Marsh Posté le 11-03-2002 à 17:05:23
La seule solution que je vois serais
de ne pas laisser l'utilisateur faire back
et recharger la page precedente en repassant les parametres comme je l'ai dis +haut (avec les fonctions header ou location en JS) automatiquement si le formulaire n'est pas correct ou avec un timeout()
ex if(formulairepascorrect()):
doument.location="toto.php?champs1=toto&...."
Marsh Posté le 11-03-2002 à 17:16:41
Ou alors réafficher la première page (celle de saisie) avec les champs remplis et celui où il y a une erreur avec un petit texte en rouge expliquant l'erreur.
ça me parrait plus simple que d'essayer de faire un back avec les données saisies dans le premier formulaire.
Marsh Posté le 11-03-2002 à 17:38:53
comment font-ils sur ce forum ? c qd même hyper pratique, tu commence à répondre à un message, tu tapes une autre url, tu consultes un autre site, et tu fais back jusqu'au formulaire de réponse de ce forum et ton message est exactement comme tu l'as laissé...
une idée ?
Marsh Posté le 11-03-2002 à 17:45:51
Bah justement c'est que je ne comprenais pas à ton soucis c'est que ca ca se fait tout seul dans le cache du navigateur. Donc normalement tu n'as rien à faire
Marsh Posté le 11-03-2002 à 17:49:42
bah non moi aussi j'ai deja eu le pb en faisant back il me recree le formulaire a blanc j'ai ete oblige de rebalancer les valeurs pour ne pas perdre les infos...
Marsh Posté le 11-03-2002 à 18:01:29
ha bon ? moi jamais je pense...
j'ai sans doute du forcer un peu trop sur les balises Meta et les heads pour qu'il ne prenne pas dans la cache dans mon forum alors...
Faudrait que je teste sans.
Mais sinon c marrant que shirley_manson aie le même problème sans avoir visiblement touché à ces métas...
[jfdsdjhfuetppo]--Message édité par ethernal--[/jfdsdjhfuetppo]
Marsh Posté le 11-03-2002 à 18:05:27
c'est ptet a cause de la method du form nan ?
Marsh Posté le 11-03-2002 à 18:17:34
non je pense pas, c'est toujours du "post"...
ps : extrait du début du code de cette page :
Citation : <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> |
Marsh Posté le 11-03-2002 à 18:26:45
[citation][nom]ethernal a écrit[/nom]non je pense pas, c'est toujours du "post"...
Shirley_manson et moi on avait ptet mis un get ??
Marsh Posté le 11-03-2002 à 19:00:45
c pas courant d'utiliser un get dans un formulaire...
mais je pense pas que ça soit du à cela
Marsh Posté le 12-03-2002 à 01:37:54
non non mon formulaire fait un POST des valeurs contenues dans les champs vers le deuxième fichier php qui les insère dans la base.
Par contre je vais essayer de modifier les entêtes :
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="Expires" CONTENT="0">
J'ai rien de tout ça et il me balance une page vierge à chaque fois, champs vides. Je teste ça mercredi. Mardi RTT !!!
Marsh Posté le 11-03-2002 à 15:43:23
Bon alors c'est assez tordu à expliquer mais finalement c'est simple quand on le voit.
J'ai un formulaire avec quelques champs et tout ça dans un form. Dans la page qui est liée à ce form, je prends les variables et je les insère dans la base. Tous va bien, ça marche.
Seulement c'est dans la page php qui est appelée lorsque je fais Ok sur la première page que les tests sont faits pour voir si les champs sont bien remplis, etc...
Si un truc manque, l'utilisateur fait généralement back avec le browser, et il perd tout ce qu'il a tapé, et qui était juste. Il doit tout retaper, et risque de se gourer à nouveau... bref pas glop.
Donc je cherche un truc pour pouvoir faire back sans problème, avoir le contenu de mes champs, l'utilisateur corrige son erreur, et revalide.
Une fois validé, il faut réafficher la première page mais avec rien dans les champs, pour une autre saisie. Faisable ??