Empecher le rafraichissement impossible de la page [Résolu]

Signaler
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
-
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
-
Bonjour !

Je developpe un site en PHP, et mon premier moteur de rechercher, qui a l'air de fonctionner correctement... enfin ... pour le moment lol

Je tappe un mot clé, ça me renvoi des resultats, je clique sur le resultat et ça m'ammene sur la page voulue, mais si ce n'est pas ça la page voulue, le client va vouloir cliquer sur le bouton de retour arriere ayant comme lien
Javascript:history.go(-1)


Enfin que ce soit ça ou retour arriere de windows c'est pareil, ça me met une vielle page vide "La page Web a expiré"

Et quand je fais F5 ça me met une alerte JS qui me dit :

"pour actualiser cette page, IE doit de nouveau envoyer les informations que vous avez entrées.

Si vous faisiez un achat, cliquez sur Annuler pour éviter de répéterla transaction. Sinon cliquez sur Recommencer pour réafficher la page Web."

donc ma question est: COMMENT DETOURNER SA SVP ???
merci

11 réponses

Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
bon bin en fait je viens de trouver la solution de mon problems, si ça interesse quelqu'un :

session_cache_limiter('public, must-revalidate');


voilà merci quand meme a vous qui m'avez répondu ;)
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Passe donc les donnés du formulaire de recherche par get et non par post.
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
faire mon moteur de recherche en GET ?
Mais il y a aurait des tonnes de paramètres !!! Et niveau securite cest bcp plus ouvert nan ?
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
«Mais il y a aurait des tonnes de paramètres !!!»
Et alors ça change quoi ? T'as déjà regardé l'url d'une recherche google par exemple ?

«Et niveau securite cest bcp plus ouvert nan ?»
Non, c'est exactement pareil. Dans tous les cas l'utilisateur envoie ce qu'il veut et pas forcément ce que toi tu veux, c'est toujours a toi de tout contrôler côté serveur.
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
Ok je vais essayer merci beaucoup pour ta reactivité ;)
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Bonjour,

Sinon en php tu envoie les header suivants :
<?php
header( "Last-Modified: " . gmdate( "D, j M Y H:i:s" ) . " GMT" );
header( "Expires: " . gmdate( "D, j M Y H:i:s", time() ) . " GMT" );
header( "Cache-Control: no-store, no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-check=0", FALSE );
header( "Pragma: no-cache" );
?>
Le navigateur rechargeras la page si l'utilisateur clique sur le bouton back...

Tonio
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
haa merci tonio ça a l'air interessant, mais je ne connais pas ce bout de code.
Tu peux m'expliquer ce que ça fait chaque ligne stp ?

Et je copie colle exactement ce code sur la page de mon moteur de recherche de manière à empecher le rafraichissement de cette page "search.php" quand on retourne dessus ?

Je te remercie
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
(car la méthode GET ne me convient pas trop en fait je suis obligé de changer trop de trucs ... mon patron finira par bouder si je dois "tout" recommencer lol)
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Alors les header doivent etre envoyés avant tout echo... Ils donne au navigateur du client des infos sur la page... Voici ici les infos données :

header( "Last-Modified: " . gmdate( "D, j M Y H:i:s" ) . " GMT" );
Last-Modified: Donne la date de dernière modification de la page, ici on lui indique la date actuelle comme ca il crois qu'il affiche une page qu'il n'as jamais affichée...

header( "Expires: " . gmdate( "D, j M Y H:i:s", time() ) . " GMT" );
Expires: Ici on dis que la page ne changeras pas avant une certaine date... Encore une fois on spécifie la date actuelle pour que le navigateur se dise qu'il devras retélécharger la page a saa prochaine consultation...

header( "Cache-Control: no-store, no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-check=0", FALSE );
Cache-Control: Ici on lui dis de ne pas garder la page en cache (valide HTTP/1.1)

header( "Pragma: no-cache" );
Idem que Cache-Control mais pour HTTP/1.0

Pose ces lignes en haut de ton code avant tout...

Pour plus de détails je te conseille :
http://fr2.php.net/manual/fr/function.header.php

Tonio
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
D'accord merci bcp... encore un jour où je me coucherais moi bete.
J'ai du boulot sur toshop là je verrais demain ;)

Merci bcp encore :)
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
Bonjour Tonio !

Comme je t'ai dis hier, j'ai docn testé aujourd'hui, je l'ai bien mis avant tout code HTML et tout echo, mais ça ne change rien.

Quand je sors du moteur de retour et je clique sur précécent ça me mets toujours cette vieille page à 2 euros "La page Web a expiré" arf