Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2007, 15h59   #1
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 99
Points : 35
Points : 35
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 :
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 :
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 :
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??
ben53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 16h10   #2
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

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

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
il faut utiliser la variable $_SESSION['prenom']

tu peux faire comme ça dans ta classe:

Code :
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;
    }
}
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 16h11   #3
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 99
Points : 35
Points : 35
ça marche, merci!
ben53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 18h02   #4
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
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

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 17h51   #5
Membre régulier
 
Inscription : janvier 2007
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 85
Points : 80
Points : 80
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 ...)

@++
p.legal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h13.


 
 
 
 
Partenaires

Hébergement Web