Rechercher : dans
Par :

Perte de donnée dans ma session (PHP)

Dernière réponse le 6 jui 2007 à 21:50:41 Scrammy, le 7 fév 2007 à 10:39:24 
 Signaler ce message aux modérateurs

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 ^^ Scrammy
Configuration: Windows 2000
Internet Explorer 6.0

Meilleures réponses pour « Perte de donnée dans ma session (PHP) » dans :
Connexion à une base Oracle en php Voir1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
Introduction à PHP VoirQu'est-ce que PHP? PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La...

1

Scrammy, le 7 fév 2007 à 15:21:43

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. Scrammy

Répondre à Scrammy

2

 T0T0, le 6 jui 2007 à 21:50:41

Moi j'ai rien compris, mais je pense avoir un problème similaire.
Pourrais-tu être plus clair ?

Répondre à T0T0
Collection CommentÇaMarche.net