[RESOLU] Actualiser la page

Eléphanteau du PHP | 29 Messages

16 août 2015, 20:22

Dans une page en php, je liste le contenu d'un répertoire, et j'ai un formulaire avec un bouton "supprimer" qui appelle un autre fichier php, dans lequel je fais diverses vérifications, puis je supprime le fichier et je reviens à la page précédente (sans en avoir ouvert une autre, il faut bien le dire) par un "header('location:...')".

Or la liste n'est pas mise à jour : qu'est-ce que j'ai mal fait ?

Merci d'avance.

AMIcalement.

Mammouth du PHP | 2703 Messages

16 août 2015, 20:34

la suppression du fichier marche bien ?

Eléphanteau du PHP | 29 Messages

16 août 2015, 22:49

Oui, mais il est toujours dans la liste quand je reviens. Si je clique sur l'icone pour actualiser la page, il disparait.

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

17 août 2015, 17:09

Cela pourrait simplement être du à un problème de cache au niveau du navigateur. A voir en vidant le cache de celui-ci ou en modifiant les paramètres.
Essayes d'ajouter un attribut en plus dans ton location (par exemple pour indiquer que la suppression a été réalisée avec succès). L'url étant différente, le navigateur ne devrait pas utiliser son cache (si le problème vient bien de là, mais si ton enregistrement est bien supprimé, je vois pas d'autre cause)...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 42 Messages

17 août 2015, 18:58

Ryle a raison , cela doit être du au navigateur qui cherche toujours à optimiser la vitesse et le chargement. On retrouve cela souvent avec les fichiers de style CSS qui restent les même , même si on fait des modifs.

Un petit astuce pour remédier à cela est de mettre dans ton header(Location :... ) le nom de ta page suivi d'un nombre choisi au hasard.

Code : Tout sélectionner

header('location: page.php?rand()')

Eléphanteau du PHP | 29 Messages

18 août 2015, 23:56

Je me souviendrai de l'astuce de la variable aléatoire...

Mais j'ai résolu mon problème différemment : premièrement, je déteste le passage de paramètres par GET : moins mon utilisateur en voit, mieux ça vaut. Donc je les passe par POST. Et je ne pensais pas que chaque formulaire remettait à zéro le tableau $_POST. Donc au retour, j'avais besoin de re-passer un certain paramètre.

J'ai donc créé une "mini" page, ne contenant qu'un formulaire avec un seul champ "hidden" et sans bouton, que je soumets par une instruction javascript.

Ca fait six lignes de HTML (plus 2 pour sortir de php et y revenir), ça fait passer une page blanche... C'est pas très beau, mais ça marche...

Merci à tous

AMIcalement.

Mammouth du PHP | 2703 Messages

19 août 2015, 00:08

quitte à mettre du javacript, autant faire la suppression en ajax, et faire disparaitre la ligne à l'affichage en changeant le css.

Eléphanteau du PHP | 42 Messages

19 août 2015, 17:29

l'essentiel c'est que cela marche et que ce soit économique en ressource.