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 :

variable de session dans un objet


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 123
    Points : 84
    Points
    84
    Par défaut variable de session dans un objet
    Bonjour à tous,
    Je cherche à faire le contraire de la réponse à la question classique: comment mettre un objet en variable de session?
    Je n'y arrive pas, et ne trouve pas la réponse sur le forum.

    Mon script se présente comme suit:
    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
    18
     
    require("../librairies/php/global_var.php");
     
    class GesDocDossiers {	
        var $user; 
     
        function GesDocDossiers() {
            $this->user = $prenom;
        }
     
        function getUser() {
        	return $this->user;
        }
    }
     
    echo("<br>Prénom (variable de session): ".$prenom."<br>");
    $testGDD = new GesDocDossiers();
    echo("<br>Prénom (object): ".$testGDD->getUser()."<br>");
    Le contenu du fichier global_var.php est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?
    session_register("db");
    session_register("trace_level");
    session_register("nom");
    session_register("prenom");
    ?>
    Lorsque j'exécute mon script, j'obtiens le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Prénom (variable de session): laurent
     
    Prénom (object):
    Pourquoi mon objet n'arrive pas à "voir" la variable de session $prenom??
    Things working well, no problems. Time to upgrade.

  2. #2
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    il faut utiliser la variable $_SESSION['prenom']

    tu peux faire comme ça dans ta classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class GesDocDossiers {    
        var $user = $_SESSION['prenom']; 
     
        function GesDocDossiers() {
            $this->user = $prenom;
        }
     
        function getUser() {
            return $this->user;
        }
    }
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 123
    Points : 84
    Points
    84
    Par défaut
    ça marche, merci!
    Things working well, no problems. Time to upgrade.

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    pas bien!!!!!!!!!!
    Une classe est étanche (principe d'encapsulation des données) et ne doit contenir ni global (en théorie) et encore moins des superglobals.
    Se qui est dedans est dedans et l'extérieur reste dehors.

    Pour faire se que tu fais, il y a des constructeurs chargés d'initialiser les variables, il y a les setter/getter, et meme la surcharge des set et get (PHP5 uniquement).

    renseigne toi sur l'encapsulation des données, car au final ta classe ici n'est qu'un pack de fonctions et non pas une brique indépendante et autonome réutilisable, ce qui est le principe même d'une classe.
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 87
    Points
    87
    Par défaut
    Je sais pas ce que ça veut dire, mais j'ai lu quelque part (dans la FAQ sur le PHP de developpez.com je crois) que pour enregistrer un objet dans une variable de session il fallait au préalable déclarer l'objet

    et là y'a plus qu'a demander de l'aide à quelqu'un d'autre (si jamais un grand guru du PHP passe dans le coin ...)

    @++
    "Soyez les changements que vous aimeriez voir dans le monde" Mahatma Gandhi

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/06/2006, 09h26
  2. Réponses: 32
    Dernier message: 20/03/2006, 14h23
  3. Réponses: 8
    Dernier message: 06/02/2006, 16h38
  4. [Sécurité] variable de session dans url
    Par mussara dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2006, 22h53
  5. variables de session dans une popup
    Par erka dans le forum Langage
    Réponses: 7
    Dernier message: 26/11/2005, 19h29

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