Slu
est ce possible ? et comment ensuite acceder aux fonctions de l objet a travers la variable de session ?
thx @+
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //Instanciation $_SESSION['newDossier'] =& new cNewDossier(); //accès au méthode de la classe $dossierCourant = $_SESSION['newDossier']->getValeur();![]()
thxEnvoyé par ozzmax
pk le & apres le = ??
Voila la reponse quand j essaie d acceder a une methode ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 copierEnvoyé 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 appart
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $_SESSION["maclasse"] = new MaClasse();
fait le include avant le session_start();![]()
je croyais que l on ne pouvais rien mettre avant un session_start ?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éesEnvoyé par Seth77
regarde là :
http://php.developpez.com/faq/?page=...s_already_sent
Ah
merci ....
maintenant j ai une autre erreur![]()
![]()
![]()
![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fatal error: Access to undeclared static property: Membre::$Tab
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:
Envoyé par ozzmax
c quand j appel getPseudo
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
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 caEnvoyé 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?![]()
merci ca marche
c quoi la dif entre this et self ??
ben je pense que ouiEnvoyé par ozzmax
self:: c'est quand tu accède à une constante ou un attribut statique de la classeEnvoyé 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.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![]()
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.
Partager