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 :

[Sessions] Session + Serialize + Objets?


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 31
    Points : 25
    Points
    25
    Par défaut [Sessions] Session + Serialize + Objets?
    Bonjour,

    j'ai un petit problème tout simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class buffer {
    	var $im,$bg,$width,$height;
    	function buffer($width1,$height1) {
    		$this->width=$width1;
    		$this->height=$height1;
     
    		$this->im = @imagecreate($this->width, $this->height);
    		$this->bg = imagecolorallocate($this->im, 0, 255, 255);
    	}
    	function draw(){
    		ImagePNG($this->im, "image1.png");
    	}
    }
    quand je sérialize cette objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_SESSION['test'] = serialize(new buffer(640,480);
    $test = unserialize($_SESSION['test']);
    il à l'air de perdre l'espace mémoire réservé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->im = @imagecreate($this->width, $this->height);
    concrètement il me donne une erreur sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ImagePNG($this->im, "image1.png");
    invalid image ressource....

    je ne sais pas si j'ai été assez clair...
    mais comment remédier a ce problème?

    merci d'avance.

  2. #2
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Bonjour,

    ceci est "normal" : la fonction serialize ne gère pas les "ressources" (pointeurs de fichiers, connexions aux base de données, sockets, etc).

    Pour y remèdier, tu peux utiliser les méthodes __sleep et __wakeup afin de mettre en place un mécanisme de "re-création" de la ressource.
    (c'est ce que je fais pour une classe de connexion FTP)


    EDIT : un petit lien : http://www.php.net/manual/fr/language.oop.magic-functions.php

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    merci beaucoup, c'est ce que je cherchais...
    dsl je suis nouveau dans le monde du php

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

Discussions similaires

  1. Objet en session avec serialize()
    Par numerodix dans le forum Langage
    Réponses: 6
    Dernier message: 13/09/2009, 23h35
  2. ERREUR variable session contenant un objet
    Par hammag dans le forum Langage
    Réponses: 2
    Dernier message: 06/05/2009, 17h15
  3. [POO] Stockage en variable de session d'un objet
    Par delete dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2009, 17h49
  4. Réponses: 15
    Dernier message: 16/05/2007, 16h53
  5. variable de session dans un objet
    Par ben53 dans le forum Langage
    Réponses: 4
    Dernier message: 24/01/2007, 17h51

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