cs_djagger
Messages postés536Date d'inscriptionlundi 5 mai 2003StatutMembreDernière intervention29 janvier 2009
-
18 sept. 2007 à 16:41
cs_djagger
Messages postés536Date d'inscriptionlundi 5 mai 2003StatutMembreDernière intervention29 janvier 2009
-
20 sept. 2007 à 09:37
Salut !
Voici mon problème, je capte vraiment pas d'où ca peut venir !!
index.php: juste un lien vers page2.php
<html>
[page2.php PAGE 2]
</html>
page2.php: un formulaire POST vers page3.php + un echo $_SERVER["HTTP_REFERER"];
<html>
<form action="page3.php" method="post"></form>
<?php echo $_server["http_referer"];?>
</html>
Le problème est que mon echo $_SERVER["HTTP_REFERER"]; affiche toujours index.php, même quand je valide mon formulaire !!!
Si qqun a une idée, parceque là je vois pas !
merci d'avance
cs_Kysic
Messages postés332Date d'inscriptionmardi 12 juillet 2005StatutMembreDernière intervention17 juillet 2010 19 sept. 2007 à 19:48
essaie un:
session_cache_limiter('private_no_expire');
avant le session.start() normalement cela évite l'envoi du header qui empèche la mise en cache (responsable du problème).
http://kysicurl.free.fr/
vilhjalms
Messages postés591Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention16 juillet 20092 18 sept. 2007 à 20:43
Saell og blesuð
Quand vous faites un window.history.back(); vous demandez au navigateur client de faire un precedent donc il va chercher dans son cache et reaffiche la page2 mais le server lui n est pas solicite
cs_Kysic
Messages postés332Date d'inscriptionmardi 12 juillet 2005StatutMembreDernière intervention17 juillet 2010 19 sept. 2007 à 10:16
Salut,
Une première solution est de sauvegarder la dernière page visitée par le client sur le serveur en utilisant par exemple les sessions.
Une autre est de remplacer le history.back() par un lien vers la page du formulaire et de prépremplir le formulaire avec ce qu'il avait posté la première fois (ce qui implique donc de sauvegardé ce qu'il a posté (session encore...)).
Une autre est sans doute de ce passer d'HTTP_REFERER, mais il faudrais savoir a quoi il vous sert.
(L'header ou la balise méta nocache sont peut être une solution, mais j'ai peur que de toute façon même si le navigateur recharge la page il envoit comme referer celle qui précède dans l'historique, c'est à dire la page index, et de toute manière cela supprimera surement le contenu du formulaire également).
Sinon je suppose que la page3 sert à traiter le formulaire, il est aussi possible de traiter le formulaire sur la même page que celle qui l'affiche, avec affichage éventuel de l'erreur avant le formulaire si il a été mal rempli (ça évite d'avoir à sauvegarder le contenu du formulaire pour le réafficher puisque qu'à ce moment là il est disponible dans les variables POST).
Enfin voilà, il y a plein de solutions en fait, tout dépend de ce que vous voulez faire...
http://kysicurl.free.fr/
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_djagger
Messages postés536Date d'inscriptionlundi 5 mai 2003StatutMembreDernière intervention29 janvier 20091 19 sept. 2007 à 10:39
Salut !
merci de ta réponse !
En fait mon formulaire de page2 est pré-rempli quand on passe par index.
Dans page3, si certaines infos sont incorrectes, je retourne sur page2. Mais du coup il ne faudrait pas que le formulaire se préremplisse ....
en gros dans page2 :
si provenance=index -> pré-remplir le formulaire (en js)
sinon garder les infos entrées par l'utilisateur
traiter le formulaire sur page2 me ferait faire bcp trop de modifs ! (page3 sert a traiter plusieurs form)
je pense que je vais être obligé de stocker le contenu et dans page3, au lieu de window.history.back() :
window.location.href='page2.php?info1=xxx&info2=xxx&etc....';
Si vous avez une autre idée hésitez pas !
encore merci
cs_Kysic
Messages postés332Date d'inscriptionmardi 12 juillet 2005StatutMembreDernière intervention17 juillet 2010 19 sept. 2007 à 10:56
Salut,
ba ça devrait marcher tout seul alors (je dois pas comprendre).
Exemple:
1.html:
<form method="pos" action="2.html">
</form>
2.html:
[javascript: history.go(-1); retour]
Quand on arrive la première fois sur la première page, le champ est prérempli avec "essai", mais si l'on change le champ, puis qu'on valide, puis qu'on fait retour, on retrouve bien ce que l'on a saisie (le navigateur laisse ce qu'on a rentré).
(et on peut bien sur changer le contenu de value en php suivant la provenance).
http://kysicurl.free.fr/
cs_djagger
Messages postés536Date d'inscriptionlundi 5 mai 2003StatutMembreDernière intervention29 janvier 20091 19 sept. 2007 à 12:29
Alors là je pige plus rien !!
Avec l'exemple ca marche nickel, et avec mon appli ca marche pas ....
pourtant y'a rien de spécial dans mes pages !
J'ai tout simplifié jusqu'à avoir un truc aussi simple que l'exemple .... ca a marché, mais pas du premier coup
du coup j'ai remis les pages telles qu'elles étaient au début .... ca a marché 3-4 fois et maintenant ce remarche plus !
cs_Kysic
Messages postés332Date d'inscriptionmardi 12 juillet 2005StatutMembreDernière intervention17 juillet 2010 19 sept. 2007 à 12:47
Ce qu'il serait intéressant de savoir c'est si la page est rechargée ou si le navigateur se sert du cache (en affichant l'heure du serveur sur la page par exemple).
Sinon est-ce que cela à avoir avec le temps entre le premier chargement de la page 2 et le moment ou l'on y retourne ?
(voir avec une balise meta : <meta http-equiv="Expires" content="3600"/> )
cs_djagger
Messages postés536Date d'inscriptionlundi 5 mai 2003StatutMembreDernière intervention29 janvier 20091 20 sept. 2007 à 09:37
Yessss ca marche !!!
Merci beaucoup, je n'aurais pas trouvé tout seul !!
Une journée qui commence bien !
Encore merci ;) a+++
_____________________
http://www.bzh-metal.com Communauté Métal Bretonne