Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/08/2007, 14h18   #1
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 2
Points : 0
Points : 0
Par défaut Variable session faussée par le bouton précèdent du navigateur

Bonjour a tous, j’espère que je ne me suis pas trompée car c’est mon premier message.
Je développe avec php et posgresql.

J’ai ma première page php, que j’appelle liste.php : en gros connexion a la base et récupération d’informations puis affichage de la liste sous forme d’un tableau :


ID | label |
--------------
A-1 | attr1 |
A-2 | attr2 |

Ou A-1,A-2 sont les liens, on cliquant sur le lien, j'exécute liste_id.php en passant le numéro comme paramètre (liste_id.php ?id=A-1 )


Et dans la liste_id.php je sauvegarde le chemin A-1, Dans une variable session ( cette variable me permet e sauvegarder le chemin de navigation ) puis je fait d’autres requêtes (différentes de celles de liste.php) et je récupère des choses que j’affiche et toujours le même principe d’affichage en gros :


ID | User |
----- ---------
B-1 | pierre |
B-2 | arnaud |

et la lorsque je clique sur le lien (B-1) je vais dans une redirection.php?id=B-1,
je le rajoute dans ma variable session puis redirection a la page , liste_id.php?id=B-1, car je dois faire la même chose il n'y a que l'identifiant qui change.

Au debut de la liste_id.php j’affiche le contenu de la variable session comme suit :
A-1 / B-1 / C-3 / D-4 (qui sont des liens qui permettent de revenir en arrière)
Le retour en arrière est fait de la manière suivante :

On cliquant sur un lien du chemin (exp D-4 )je vais dans redirection.php?id= C-3, efface tous a partir de C-3, il me restera donc « A-1 / B-1 / C-3 / » puis redirection vers liste_id.php?id=B-1 .

Le problème que j’ai c’est lorsque on clique sur le bouton précèdent, il revient en arrière, mais le dernier lien dans la variable session n’est pas effacé, donc le chemin de navigation est faussé.

Désolée pour ce long message, j'espère au moins que j'étais clair.
Merci.
Pai-1473 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 15h21   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Je me suis déjà penché sur l'enregistrement de l'historique de navigation et je suis aussi tombé sur ton problème. Il n'est pas possible de faire la différence entre le clic sur un lien et l'arrivée sur la page grâce au bouton "précédant"
La seule solution que j'ai trouvée c'est de ne pas chercher à vouloir réinventer la roue et d'apprendre aux visiteurs à utiliser les boutons "suivant" et "précédant" de leur navigateur
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 16h42   #3
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 2
Points : 0
Points : 0
Merci boucoup mathieu,

je viens de faire deux compteurs dans les deux pages en question du genre :
si (compteur1> compteur2 )
alors header( "Location: ./mapage.php?id=".$chemin);

et la ,chaque navigateur se comporte differement , firefox et internet Explorer ne font pas le redirection , avec Mozilla j'ai une alerte lorsque je clique sur precedent et puis lorsque je clique sur le lien pour revenir en arriere la premiere fois ca marche pas mais la deuxieme fois ca marche et opera ignore completement la redirection voila .
Merci encore une fois, mais si quelc'un trouve un autre moyen tenez moi au courant.
Pai-1473 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h52.


 
 
 
 
Partenaires

Hébergement Web