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 :

Mise en session avec sleep / wakeup


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Mise en session avec sleep / wakeup
    Bonjour,

    J'ai un problème avec la mise en session d'un de mes objets.

    Je possède une classe User qui s'occupe du traitement basique concernant les utilisateurs (formulaire de création/édition, suppression, validateur de droits etc...).

    Ma classe possède un attribut global $pdh qui stocke un objet PDO pour les accès à ma db. Sinon, toutes les données relatives aux membres sont dans un tableau $data.

    Je voudrais pouvoir mettre cet objet en session (logique). Jusque là, je n'avais pas besoin de l'objet PDO mais quelques nouvelle méthodes ne peuvent plus s'en passer.

    J'ai écrit vite fait les fonctions sleep et wakeup pour pouvoir gérer cet objet PDO qui m'a déjà posé des problèmes lors d'essais de mise en session auparavant. Le problème, c'est qu'avec ces deux méthode supplémentaire, l'objet ne semble plus vouloir se mettre en session, et il est impossible d'accéder aux pages admin...

    Voici mon code. Je viens d'achever la théorie sur les sleep/wakeup, donc je suis surtout à la recherche d'une erreur d'utilisation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	function __wakeup()
    	{
    		$this->dbh = new PDO(DSN1, USER1, PASS1);
     
    		$this->data = $_SESSION['session']->data ;
    	}
     
    	function __sleep()
    	{
    		return $this->data ;
    	}
    Voilà voilà.

    Merci d'avance!

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Les deux méthodes magiques liées à la sérialisation sont mal employées notamment __sleep qui doit retourner un tableau contenant le nom des membres à sérialiser.

    Donc théoriquement, c'est bien plus simple, on devrait plutôt avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	function __wakeup()
    	{
    		$this->dbh = new PDO(DSN1, USER1, PASS1);
    	}
     
    	function __sleep()
    	{
    		return array('data');
    	}
    la documentation

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    merci beaucoup! En effet, ça fait toute la différence et ça marche parfaitement maintenant!

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

Discussions similaires

  1. [CSS][HTML] Mise en page : Avec ou sans tableaux ?
    Par arno2000 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 09/08/2005, 02h34
  2. Démarrer automatiquement une session avec pass
    Par cyberman.inc dans le forum Windows XP
    Réponses: 3
    Dernier message: 07/08/2005, 17h55
  3. Petite mise au point avec gluUnProject.
    Par fatpat94 dans le forum OpenGL
    Réponses: 1
    Dernier message: 27/07/2005, 15h40
  4. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 10h28
  5. Mise en forme avec Netscape et Mozilla
    Par seb30 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/10/2004, 10h18

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