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] PHP 5, transmettre objet dans la session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 87
    Par défaut [POO] PHP 5, transmettre objet dans la session
    Bonjour,

    je développe un site en php 5. J'utilise un objet $membre que j'instancie lors de l'authentification. Ca, ça marche j'en suis certain (test avec isset plus test des méthodes sur l'objet).

    J'utilise les deux fonctions suivantes en début et en fin de mon contrôleur afin de maintenir la session.

    Début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        /**
         * Démarre ou reprend une session
         */
        function debutSession() {
            session_start();
     
            $membre = $_SESSION['membre'];
            if ($membre)
                $membre = unserialize($membre);
     
            return $membre;
        }
    Fin :
    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
     
        /**
         * On clot la session et le programme.
         * L'objet de la classe Membre contenant les informations de 
         * la session courante ($membre) est sauvé.
         */
        function finSession($membre) {    
            if (isset($membre)) {
                $_SESSION['membre'] = serialize($membre);
                session_write_close();
            }
            else {  // si $membre n'a pas été initialisé, on détruit
                    // la session
                session_destroy();
            }
            exit(0);
        }
    Dans l'index (le contrôleur) ( au tout début) je récupère le membre dans une variable et je recopie dans la session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        $racine = 'C:/web/xampp/htdocs/tsf98/';
        $membre = debutSession();
        $_SESSION['membre'] = $membre;
    Et là, c'est le drame, dès que je change de page, la variable $_SESSION['membre'] n'est plus conssidérée comme étant renseignée. ( le test isset ne passe pas et les fonctions appliquées à l'objet membre bugg (normal...).

    L'erreur vient donc de cette fermeture de session qui ne retourne apparemment pas correctement l'objet membre. Où est l'erreur??

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Tu n'as pas besoin de t'occuper de la serialisation... stocke simplement l'objet en lui même, c'est PHP qui s'occupe de la sérialisation

    pour le récupérer, il faut simplement que la classe soit définie avant le session_start()
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 87
    Par défaut
    C'est bon, merci.

    En faite j'avais inclu le mauvais fichier .

    Ce qui est quand même très bizare c'est qu'il n'ya pas le message d'erreur habituel (lorsque l'on inclut pas la classe avant de créer l'objet).

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

Discussions similaires

  1. Manipulation des objets dans une session
    Par facilus68 dans le forum Hibernate
    Réponses: 5
    Dernier message: 28/12/2007, 14h02
  2. encapsulation d'objets dans des sessions
    Par Steph_SOUMIER dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2007, 10h44
  3. [POO] objet dans une session
    Par ujoodha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/09/2006, 10h57
  4. Stocker un objet dans la session
    Par Matth_S dans le forum ASP
    Réponses: 9
    Dernier message: 20/09/2006, 11h34
  5. [POO] PHP et Programmation objet
    Par debianben dans le forum Langage
    Réponses: 5
    Dernier message: 13/02/2006, 11h43

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