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 15/08/2006, 17h23   #1
Nouveau Membre du Club
 
Inscription : avril 2002
Messages : 92
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 92
Points : 32
Points : 32
Par défaut Problème de perte de session

Je perds totalement ma session, sauf que cette dernière semble fonctionner si je ferme l'onglet Firefox et revient. Voici la trace de mon problème:

1) Dès l'entrée sur le site, il se crée un fichier nommé « sess_c65e48e76537ac9b875abef4ba992a2d » dans mon
répertoire c:\tmp (save_path). Ce fichier vide (0kb) est probablement créé par mon session_start() dans mon
fichier header.inc.

2) J'entre mon nom d'utilisateur/mot de passe et j'appuie sur le bouton « Connecter ». Le formulaire appelle un
fichier contenant le code pour procéder à l'authentification et la mise en $_SESSION["Member"] les informations
sur le membre connecté.

Tout fonctionne à merveille sauf qu'il se crée un nouveau fichier de session nommé « sess_5ef2b3a24c832c22a83ae3035e21ddc3 »
de 1kb contenant mon objet Member sérialisé.

3) Ma variable $_SESSION["Member"] reste vide dans tout le site, il n'y a rien à faire...

4) Je ferme l'onglet (j'utilise Firefox) et je retourne sur mon site et là, je suis connecté et tout fonctionne à merveillé! Il ne
s'est pas recréé de fichier dans le répertoire c:\tmp.

Qu'arrive-t'il? Pourquoi se crée-t-il un deuxième fichier de session, mais que l'application semble connectée sur le premier? Le seul truc
qui me vient en tête c'est le fait qu'une fois la validation du mot de passe effectuée, je fais un header("Location: index.php?tab=favoris");

J'ai remarqué cette note dans la documentation PHP:

Note : Session ID is not passed with Location header even if session.use_trans_sid is enabled. It must by passed manually using SID constant.

Quelqu'un peut m'aider?

Contenu de mes fichiers connexion.php et header.inc:

connexion.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
   include("../header.inc");
 
   $ME_Nickname = $_POST["ME_Nickname"];
   $ME_Password = md5($_POST["ME_Password"]);
 
   $Member = validatePassword($db, $ME_Nickname, $ME_Password);
 
   if (is_object($Member)){
 
      $_SESSION["Member"] = serialize($Member);
 
      header("location: " . SITE_URL . "index.php?tab=favoris");
      exit();
 
   } else {
      echo "Mauvais mot de passe";
   }
 
   include("../footer.inc");
 
?>
header.inc
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
   session_start();
 
   define(SITE_PATH, $_SERVER["DOCUMENT_ROOT"] . "/test/site/");
   define(SITE_URL, "http://127.0.0.1/test/site/");
 
   require(SITE_PATH . "includes/c_objects.inc");
   require(SITE_PATH . "includes/db.inc");
   require(SITE_PATH . "includes/functions.inc");
 
   $db = connect(DATABASE_NAME, DATABASE_USERNAME, DATABASE_PASSWORD);
 
?>
Merci!
nmathon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2006, 18h39   #2
Nouveau Membre du Club
 
Inscription : avril 2002
Messages : 92
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 92
Points : 32
Points : 32
J'ai fini par trouver, c'était moi le problème!

Dans mes configurations, je bâtis l'adresse avec http:127.0.0.1... et je faisais des tests avec localhost!

Ça marche très bien maintenant!
nmathon 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 05h21.


 
 
 
 
Partenaires

Hébergement Web