Slu
est ce possible ? et comment ensuite acceder aux fonctions de l objet a travers la variable de session ?
thx @+
Version imprimable
Slu
est ce possible ? et comment ensuite acceder aux fonctions de l objet a travers la variable de session ?
thx @+
Salut
Oui c'est possible de stocker l'instance d'une classe en session
:wink:Code:
1
2
3
4
5
6 //Instanciation $_SESSION['newDossier'] =& new cNewDossier(); //accès au méthode de la classe $dossierCourant = $_SESSION['newDossier']->getValeur();
thxCitation:
Envoyé par ozzmax
pk le & apres le = ??
Voila la reponse quand j essaie d acceder a une methode ...
Code:Fatal error: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Membre" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in ??. on line 18
c'est pour mettre une référence de l'objet et ne pas le copierCitation:
Envoyé par Seth77
pour ton erreur, c'est parce que tu dois définir ta classe avant le "session_start"
Salut le & c'est pour faire une référence a l'objet
mais je crois que ca dépend de la version de php que tu utilises
moi j'utilise ca en php 4
Par contre ca passe pareil sans & mais comme l'objet n'était pas tout a fait au point dans la version 4 de php, si tu veux garder la référence a ton objet faut mettre le &..
En php 5 ce serait ca
Pour l'erreur, si ta classe est dans un fichier appartCode:
1
2 $_SESSION["maclasse"] = new MaClasse();
fait le include avant le session_start(); :wink:
je croyais que l on ne pouvais rien mettre avant un session_start ?Citation:
Envoyé par mathieu
Tu peux mettres les includes
mais il ne faut pas qu'il y ait d'instruction avant session start
je ne savais pas pour la définition d'une classe, mais comme c'est une définition....ce n'est pas l'execution d'instruction alors ca me semble logique qu'on puisse le faire
tu ne dois pas envoyer de code htm en sortie. par contre tu peux déclarer tes classes, faire des traitement, envoyer de requêtes à la base de donnéesCitation:
Envoyé par Seth77
regarde là :
http://php.developpez.com/faq/?page=...s_already_sent
Ah
merci ....
maintenant j ai une autre erreur :oops: :oops: :oops: :oops:
Code:
1
2 Fatal error: Access to undeclared static property: Membre::$Tab
:nono:Citation:
Envoyé par Seth77
Ce que tu ne peux pas faire c'est envoyer des données sur le navigateur.
En effet pour utiliser les sessions PHP à besoin d'avoir la main sur les header, qui sont envoyé dès que l'on envoit la moindre donnée sur le navigateur.
Des données sont envoyées sur le navigateur à partir du moment ou tu fais un echo (par exemple).
Donc tu fais ce que tu veux avant le session_start, sauf envoyé des donnéessur le navigateur, sinon c'est le drame.
:grilled:
t'as du code?
le probleme est p-e dans ta classe?
Citation:
Envoyé par ozzmax
c quand j appel getPseudoCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 class Membre extends DBElem{ var $IDMembre; var $Tab; function __construct($Id){ self::$IDMembre = $Id; $sql = "SELECT * FROM membre WHERE ID_Membre='$Id'"; // Execution de la requete $result = mysql_query($sql); if (mysql_num_rows($result) > 0){ $row = mysql_fetch_array($result); self::$Tab = array("Pseudo" =>$row['Pseudo'], "Administrateur" =>$row['Administrateur']); } } function getPseudo(){ return self::$Tab['Pseudo']; } }
Utlises $this-> plutot que self::.
Ouais j'opterais pour caCitation:
Envoyé par ePoX
Aussi comme tu définis une valeur à l'attribut $Tab dans un if, est ce que ca ce peut qu'il n'entre pas dans le if...donc n'a pas d'attribution de valeur? :roll:
merci ca marche
c quoi la dif entre this et self ??
ben je pense que ouiCitation:
Envoyé par ozzmax
self:: c'est quand tu accède à une constante ou un attribut statique de la classeCitation:
Envoyé par Seth77
pour accéder à un attribut normal il faut une instance d'un objet et là cette instance c'est $this
$this cible une instance de classe, alors self cible la structure de la classe.Citation:
Envoyé par Seth77
Je n'irai pas plus loin dans les explications je n'en suis pas capable, comme le disais ma maitresse si tu ne sais pas l'expliquer c'est que tu ne le connais pas... ou un truc du genre :lol:
Faudrait voir du coter du forum sur http://www.developpez.net/forums/viewforum.php?f=32 pour une définition plus précise et théorique de l'attribut static.
Merci a TLM !!
:wink: :D :D