Perte de donnée dans ma session (PHP)

Résolu/Fermé
Scrammy Messages postés 2 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 7 février 2007 - 7 févr. 2007 à 10:39
 T0T0 - 6 juil. 2007 à 21:50
Bonjour,

Voilà, j'utilise des variable de session notamment pour l'authentification de l'utilisateur mais aussi pour ses donnée perso propre à mon site.
A l'authentification vers la page d'acceuil, je n'ai aucun problème pour récupérer mes variables de session, seulement lorsque que je charge une autre page de mon menu et que je reviens sur ma page d'acceuil, je me suis rendu compte qu'une de mes variable de session, qui est un tableau de string, se transformait en booléen.
Pourtant je ne modifie en rien cette variable là dans mon autre page.

Voila comment je crée mes variables à l'authentification
session_start();
...
$_SESSION['ident']= $ident ;// Tableau contenant nom, prenom, identifiant et mot de passe

$_SESSION['historique_journalier']=$histo_jours; // tableau d'historisation de ce qu'a fait l'utilisateur aujourd'hui
....


Quand j'arrive sur la page d'acceuil j'ai bien dans ma session les info.
Voila le code de ma page d'acceuil pour récupérer les données:
session_start();
...

$ident = $_SESSION['ident'];

$histo_jours = $_SESSION['historique_journalier'];

...


Puis quand je change de page ma variable 'historique_journalier' devient alors un booleen (j'ai regarder directement dans le fichier de session). Pourtant je ne récupère que $_SESSION['ident'] dans mon autre page.
Je ne touche pas à $_SESSION['historique_journalier'].

si quelqu'un à des conseils à me donner, je prends tout la :/!!!

Merci d'avance ^^
A voir également:

2 réponses

Scrammy Messages postés 2 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 7 février 2007
7 févr. 2007 à 15:21
Probleme résolut!!!!! :)

Explication (si ça peut servir à d'autre):

Il se trouve que dans ma page d'authentification, là où j'initialisais la session j'utilisais certaines variables tel que:
$_SESSION['historique_journalier'] = $historique_journalier


Ensuite, dans ma page d'acceuil, je récupérai ces variables directement pour les utiliser donc je n'avais pas de soucis.
Mais dans mon autre page (page de visualisation sur un mois de ce qu'a fait la personne) je n'utilisais que $_SESSION['ident']. Pour le reste, j'étais obliger d'aller chercher chaque jours du mois dans ma base de données MySQL. Et c'est là d'où viens le problème. Je réutilisais les même noms de variable que dans ma page d'authentification. Et cela apparemment me faisais sauter toutes les variables de session identique. (je ne sais pas si je me fais bien comprendre.

Voici l'exemple pour plus de précision:

page log_utilisateur.php:
session_start();

....// Ici c'est ma connexion à la base + formulation de la requete + envoie de la requete
$ident = mysql_fetch_array($requeteSql);

....// Ici c'est ma connexion à la base + formulation de la requete + envoie de la requete
$historique_journalier = mysql_fetch_array($requeteSql);

....// Ici c'est ma connexion à la base + formulation de la requete + envoie de la requete
$journalier = mysql_fetch_array($requeteSql);

$_SESSION['ident'] = $ident;
$_SESSION['historique_journalier '] = $historique_journalier ;
$_SESSION['journalier '] = $journalier ;

....
mysql_close();


page acceuil.php:
session_start();

$ident = $_SESSION['ident']; 
$historique_journalier  = $_SESSION['historique_journalier '];
$journalier = $_SESSION['journalier '];

echo "Bonjour ".$ident["nom"]."<br>";
echo "Vous vous etes connecter à ".$journalier["heures_conect"]."<br>;
echo "Hier vous avez deconnecter à ". $historique_journalière["heure_deconnect"];


Je vais vous montrer en gros ce que j'avais fait.
page visualisation_mois.php:
session_start();

$ident = $_SESSION['ident']; 

// ON selectionne dans la base MySql les champs corespondant à $ident['identifiant'] dans la table "historique_journalier" pour le mois dernier sauvegarder dans $historique_journalier.

$i=0;
while($historique_journalier[$i] = mysql_fetch_array($requeteSql))$i++;


for($jours=1; $jours<= date("t",mktime(0,0,0,(date("m")-1), 1, date('Y"))) // boucle du 1er au dernier jours du mois en cours
{
  echo "Le "$jours."/".(date("m")-1)."/".date("Y")." ".$ident["nom"]." s'est connecté à ".$historique_journalier[($jours-1)]["heures_conect"]." et  s'est deconnecté à ". $historique_journalier [($jours-1)]["heure_deconnect"];
}
...


De ce que j'ai compris de ce problème est donc que j'aurai dû nommer autrement ma variable $historique_journaliere, car en l'utilisant j'aurai vraisemblablement "casser" ma variable de session $_SESSION['historique_journalier'].

j'espère avoir été assez clair dans mon explication.

Si quelqu'un a une explication moins "barbare", qui le dise! ça peut etre interressant d'entendre une explication plus rationnel.
0
Moi j'ai rien compris, mais je pense avoir un problème similaire.
Pourrais-tu être plus clair ?
0