Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 29/11/2012, 22h18   #1
bubu06
Invité de passage
 
Inscription : janvier 2009
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 5
Points : 2
Points : 2
Par défaut Problème étrange d'enregistrement

Bonjour à tous,

Je suis actuellement en phase de développement d'un site en PHP et je rencontre un problème étrange au niveau de l'enregistrement d'une variable de session.
Pour mon premier message sur le forum, j'aimerais vous demander un peu d'aide car je n'arrive pas à comprendre ce qu'il se passe.

Je vais résumer le plus possible pour éviter de vous embêter avec la structure du site, mais je répondrais en détail à toutes vos questions si vous en avez ; juste qu'il s'agit d'un site de vidéos.

Voici une partie du code :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
ob_start();
$_SESSION['PAGE'] = 'http://localhost/'.$_SERVER['REQUEST_URI'];
echo $_SESSION['PAGE'];
 
... mon script ...
 
ob_end_flush();
echo $_SESSION['PAGE'];
?>
Dans un certain cas, que j'explique ci-dessous, la chaine enregistrée dans le fichier de session ne correspond pas aux deux chaines affichées à l'écran.

Explication:
Lorsque je suis sur la page http://localhost/Categ1/Videos-Categ1-Page2 et que il y a plusieurs pages possible
Je vois bien cette même url (2 fois) sur la page affichée, idem dans le fichier de session.

Lorsque je suis sur la page http://localhost/Categ2/Videos-Categ2 et qu'il n'y a qu'une seule page possible
Tout est correct également.

Mais lorsque je suis sur la page http://localhost/Categ1/Videos-Categ1 et que il y a plusieurs pages possible
Je vois bien cette même url (2 fois) sur la page affichée, mais il est enregistré http://localhost/ dans le fichier de session.

Encore plus troublant, lorsque je laisse les "echo", tout marche sur ie mais pas sous firefox ou chrome. Dès que je les enlève ça ne marche plus.
Imaginons que je mette $_SESSION['PAGE'] = 'http://localhost/Categ1/Videos-Categ1' plutôt que $_SESSION['PAGE'] = 'http://localhost/'.$_SERVER['REQUEST_URI']
Et bien tout marche également.

Le dernier "echo" m'affiche la bonne url à chaque fois et c'est la dernière instruction, je ne vois donc pas comment la chaine pourrait être différente dans le fichier de session.

Voilà, j'espère avoir été clair et que vous pourrez peut-être m'aider.
Je vous souhaite une bonne soirée et reste disponible pour répondre à vos questions ou tester quoi que ce soit.
bubu06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 00h09   #2
gene69
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 1 626
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 1 626
Points : 1 992
Points : 1 992

il y a donc une réécriture d'url?
pourquoi un output buffer?
__________________
PHP fait nativement la validation d'adresse électronique .
Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.
Soyez moderne: mysqli_connect() or throw Exception(mysqli_connect_error());

PHP: un problème ? décrivez le avec ceci.

Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 19h40   #3
bubu06
Invité de passage
 
Inscription : janvier 2009
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 5
Points : 2
Points : 2
Bonsoir,

Après plusieurs heures de recherche et grace aux conseils d'un collègue.
J'ai remarqué en vidant mon cache html que lorsque j'actualisais la page posant problème, il y avait en fait 2 pages générées en cache (la bonne page et la page localhost).
J'ai remarqué la même chose en loguant toutes les pages affichées.
J'ai ensuite isolé le code et constaté que le problème survenait à l'affichage de la page.
Et c'est en regardant le template, qui affiche la liste des vidéos, que tout est devenu clair.
La liste est en fait composée de 2 parties et je n'avais pas encore terminé ce template, je n'affichais pas vraiment les miniatures mais <img src=""/> pour la première partie de la liste et <img src="#"/> pour la seconde partie.
Sachant que la seconde partie ne s'affiche que lorsqu'il y a beaucoup de vidéos dans la catégorie, mon cas tordu venait donc de là.
La balise <img src="#"/> rechargeait la page localhost, ce qui modifiait la session.

Le problème est donc résolu, et j'avoue que si j'avais terminé ce template, tout ceci ne serait pas arrivé.
Encore merci pour votre aide.
bubu06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h00.


 
 
 
 
Partenaires

Hébergement Web