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 25/05/2011, 09h51   #1
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 68
Points : 11
Points : 11
Par défaut POO et Sessions / Ma session s'arrête

Bonjour à tous,

Voilà j'ai démarré un site il y a peu de temps et en apprenant de jour en jour sur php j'ai décidé de faire de la POO. Tout marche à merveille à part mes Sessions. Elle fonctionnait bien avant et depuis ca bug. Dès que je me connecte à mon site ma variable session s'initialise comme ceci :

Code :
$_SESSION['user'] = new User($data_email['id_user'], $bdd);
Mais dès que je passe sur une autre page ma session s'arrête ... J'ai codé le début de ma page comme ceci :

Code :
1
2
3
4
5
6
 
<?php
include_once('class/User.class.php');
include("includes/bdd.php");
session_start();
?>
J'ai lu des truc sur serialization mais je comprend pas bien, y a t-il un rapport ?

Merci et bonne journée
Tobear91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h57   #2
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 68
Points : 11
Points : 11
J'ai essayé quelque chose comme ceci :

Code :
1
2
3
 
$user = new User($data_email['id_user'], $bdd);
$_SESSION['user'] = serialize($user);
Et j'obtiens l'erreur suivante :

Citation:
Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances'
Je vais voir ce que je trouves la dessus
Tobear91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 12h02   #3
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Finalement le problème semble bien venir de la sérialisation. Est-ce que tu stockes une instance de PDO dans ta classe User ?

Teste toujours un var_dump($_SESSION['user']) dans ton autre page.

(Inutile de sérialiser manuellement ton objet avant de le stocker en session.
La désérialisation est censée être automatique également)
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 12h06   #4
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 68
Points : 11
Points : 11
Non je ne stocke pas cette instance dans ma classe, en fait je pense pas que je fasse bien car j'ai gardé ma connexion à la base dans une include comme ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?php
$servbdd = "*******";
$logbdd = "*******";
$mdpbdd = "*******";
$basebdd = "********";
 
try {
    // On se connecte à MySQL
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host='.$servbdd.';dbname='.$basebdd.'', $logbdd, $mdpbdd, $pdo_options);
}
catch(Exception $e) {
    // En cas d'erreur précédemment, on affiche un message et on arrête tout
    die('Erreur : '.$e->getMessage());
}
?>
Tobear91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 12h08   #5
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Quand tu fais ça :

Code :
new User($data_email['id_user'], $bdd);
tu passes ton instance PDO, tu es sûr que tu ne la sauves pas en tant que membre de User ? Sinon je ne vois pas pourquoi tu aurais eu cette erreur en tentant de sérialiser manuellement ton objet;
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h29   #6
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 68
Points : 11
Points : 11
Si je l'enregistre en tant que variable membre ... la voilà mon erreur, je pensais que je pouvais le faire

Tout fonctionne impeccablement bien

Merci merci
Tobear91 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 15h23.


 
 
 
 
Partenaires

Hébergement Web