IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

POO et Sessions / Ma session s'arrête [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 68
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $_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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 68
    Par défaut
    J'ai essayé quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $user = new User($data_email['id_user'], $bdd);
    $_SESSION['user'] = serialize($user);
    Et j'obtiens l'erreur suivante :

    Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances'
    Je vais voir ce que je trouves la dessus

  3. #3
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    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)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 68
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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());
    }
    ?>

  5. #5
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Quand tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 68
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. POO et variable de session
    Par devocx dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/07/2011, 18h11
  2. [POO] PHP5 objet et session
    Par deborah95 dans le forum Langage
    Réponses: 4
    Dernier message: 17/04/2007, 20h58
  3. Réponses: 2
    Dernier message: 18/12/2006, 00h37
  4. [POO] objet dans une session
    Par ujoodha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/09/2006, 10h57
  5. [Session Context] session non transmise
    Par patricetouner dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 29/12/2004, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo