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 06/06/2007, 14h17   #1
Membre du Club
 
Avatar de lelapinou
 
Inscription : avril 2003
Messages : 88
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : avril 2003
Messages : 88
Points : 43
Points : 43
Envoyer un message via MSN à lelapinou
Par défaut [Cookies] Perte de session au changement d'arborescence

Salut à tous. Mon soucis est très bizarre.
Alors voilà l'explication:
4 pages :
- ../menu_bas.php
- ../panier/articles.php
- ../panier/bande_collections.php
- ../panier/liste_cartes.php
La page menu_bas, est une page qui est utilisée dans toutes les pages du site, par un include($_SESSION['racine'].'menu_bas.php').
La page ARTICLES, contient LISTE_CARTES, BANDE_COLLECTION et MENU_BAS, via des includes.

Dans ma page index, je fais l'ouverture d'une session avec session_start(), jusqu'ici rien de phénoménal. Ainsi la page menu reprend une supervariable $_SESSION['racine'], pour les a href qu'elle comporte.
Mon problème est que lorsque j'utilise la page ARTICLES.php, mes supervariables sont reconnues dans les pages ARTICLES,BANDE et LISTE, par contre totalement inexistantes dans MENU.
Je pense qu'il y a un rapport avec l'arborescence, car MENU n'appartient pas au même répertoire que les autres.
Merci de me donner vos idées.
__________________
//-----------------------------------------\\\\
Peace on Earth
//-----------------------------------------\\\\
lelapinou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 17h59   #2
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 637
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 637
Points : 690
Points : 690
Interressant, verifiez le "path" (chemin) du cookie de session grace a votre client http(s) (navigateur).
__________________
Q: Dois-je haïr et cogner sur Microsoft ?
R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma.
Comment devenir un hacker ? par Eric Steven Raymond
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 09h58   #3
Membre du Club
 
Avatar de lelapinou
 
Inscription : avril 2003
Messages : 88
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : avril 2003
Messages : 88
Points : 43
Points : 43
Envoyer un message via MSN à lelapinou
Par défaut Path vide

Après vérif du path dans mon browser, il est vide (path = /).
Par contre j'ai copié le fichier menu_bas.php dans le même répertoire que lesautres fichiers et cela fonctionne parfaitement
__________________
//-----------------------------------------\\\\
Peace on Earth
//-----------------------------------------\\\\
lelapinou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 13h26   #4
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 637
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 637
Points : 690
Points : 690
Après vérif du path dans mon browser, il est vide (path = /).
Dans quel cas ? Lorsque le cookie est enregistre dans le sous-dossier ?
__________________
Q: Dois-je haïr et cogner sur Microsoft ?
R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma.
Comment devenir un hacker ? par Eric Steven Raymond
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 14h13   #5
Membre du Club
 
Avatar de lelapinou
 
Inscription : avril 2003
Messages : 88
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : avril 2003
Messages : 88
Points : 43
Points : 43
Envoyer un message via MSN à lelapinou
Par défaut c à nouveau

je reviens à la charge, au cas où une âme charitable pourrais avoir une réponse.
J'ai une variable de session instancée à la connexion du membre, qui n'est pas connue dans un fichier se trouvant sur un autre répoertoire.
Voici le source dur fichier menus.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?
echo 'niveau_membre='.$_SESSION['membre_niveau'];
switch ($_SESSION['membre_niveau'])
{
case 1:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_admin.js"></SCRIPT>';
	break;
case 2:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_dirigeant.js"></SCRIPT>';
	break;
case 3:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_membre.js"></SCRIPT>';
	break;	
default:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_principal.js"></SCRIPT>';
}
 
 
?>
ce fichier est introduit dans mes divers fichiers grace à un include, c'est pourquoi je n'ai pas de session_start(), mais même avec un session_start() cela ne fonctionne pas. Sur le echo , ma variable est vide, alors que sur une page, à la racine, aucun soucis de variable. Il y a t il un soucis de portabilité des variables globales que j'ignore. Je n'ai rien trouvé dans mes recherches.
Merci
__________________
//-----------------------------------------\\\\
Peace on Earth
//-----------------------------------------\\\\
lelapinou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 15h30   #6
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 637
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 637
Points : 690
Points : 690
Cette fonction demarre la session si necessaire, peut etre pourriez-vous l'utiliser ?

Code :
1
2
3
4
5
6
7
8
9
10
11
/**
 * Function to start the session if required.
 */
function startSession()
{
  global $_SESSION;
  if (!isset($_SESSION)&&!$_SESSION)
  {
    session_start();
  }
}
__________________
Q: Dois-je haïr et cogner sur Microsoft ?
R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma.
Comment devenir un hacker ? par Eric Steven Raymond
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 15h42   #7
Membre du Club
 
Avatar de lelapinou
 
Inscription : avril 2003
Messages : 88
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : avril 2003
Messages : 88
Points : 43
Points : 43
Envoyer un message via MSN à lelapinou
Par défaut sessions_start();

j'avais essayé en insérant le session_start() et j'avais le message d'erreur disant que ma session était déjà lancée et que je ne pouvais en lancer plusieurs.
Je suis super emmm.... car cela m'oblige à copier mon code sur toutes les pages à la place du include.
__________________
//-----------------------------------------\\\\
Peace on Earth
//-----------------------------------------\\\\
lelapinou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 15h53   #8
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 637
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 637
Points : 690
Points : 690
Alors il faudra probablement poster plus de code pour une reponse precise...
__________________
Q: Dois-je haïr et cogner sur Microsoft ?
R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma.
Comment devenir un hacker ? par Eric Steven Raymond
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 16h05   #9
Membre du Club
 
Avatar de lelapinou
 
Inscription : avril 2003
Messages : 88
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : avril 2003
Messages : 88
Points : 43
Points : 43
Envoyer un message via MSN à lelapinou
Par défaut Quelques lignes de code

Après mon log,j'ai un header sur ma page membre.php
dont voici le début:

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?
 
session_start();
include('include/config.inc');
 
if (!isset($_SESSION['membre_login'])) {
    // si ce n'est pas le cas, on le redirige vers l'accueil
    header ('Location: index.php');
    exit();
}
Voici comment je veux intégrer mon menu:
Code :
1
2
3
 
.... code php ....
<td width="242" height="100%" valign="top" background="images/index_24.gif">'.include('include/menus.php').'</td>';
Voici le contenu de ma page include/menus.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?
session_start();
 
switch ($_SESSION['membre_niveau'])
{
case 1:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_admin.js"></SCRIPT>';
	break;
case 2:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_dirigeant.js"></SCRIPT>';
	break;
case 3:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_membre.js"></SCRIPT>';
	break;	
default:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_principal.js"></SCRIPT>';
}
 
?>
et voici ce que je suis obligé de faire pour que ça fonctionne:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
.... code php ....
<td width="242" height="100%" valign="top" background="images/index_24.gif">
switch ($_SESSION['membre_niveau'])
{
case 1:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_admin.js"></SCRIPT>';
	break;
case 2:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_dirigeant.js"></SCRIPT>';
	break;
case 3:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_membre.js"></SCRIPT>';
	break;	
default:
	echo '<SCRIPT LANGUAGE="JavaScript" SRC="'.$_SESSION['racine'].'include/menu_principal.js"></SCRIPT>';
}
</td>';
Si d'autres précisions sont nécessaires.... je suis plusque dispo
__________________
//-----------------------------------------\\\\
Peace on Earth
//-----------------------------------------\\\\
lelapinou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 16h46   #10
Membre du Club
 
Avatar de lelapinou
 
Inscription : avril 2003
Messages : 88
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : avril 2003
Messages : 88
Points : 43
Points : 43
Envoyer un message via MSN à lelapinou
Par défaut résolu, mais je ne sais pas pourquoi

J'ai résolu le problème mais je ne comprend toujours pas le pourquoi du comment.
J'ai en effet créé un fichier pour tester toutes mes variables de session, et elles s'affichaient toutes, alors j'ai supprimer le fichier incriminé et je l'ai re-créé, pouf, ça fonctionne.
Ne me demandez pas pourquoi, je n'en sais rien. Je serais tenter d'appeler Mulder & Scully, mais suis sûr qu'ils ont autre chose à faire.

Merci de votre intervention!
__________________
//-----------------------------------------\\\\
Peace on Earth
//-----------------------------------------\\\\
lelapinou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web