malheureusement ca marche avec des type "simple", mais pas avec des object :
Code :
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
echo "hello";
}
$count = &$_SESSION['count'];
$count++;
echo $count;
?>
Code :
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = new Compteur();
echo "hello";
}
$count = &$_SESSION['count'];
$count->inc();
$count->see();
?>
j'ai l'impression que quadn on mets un object en session : isset => renvoie false tout le temps
Publicité
Posté le 29-03-2003 à 15:03:22
art_dupond
je suis neuneu... oui oui !!
Posté le 29-03-2003 à 15:08:11
peut etre avec serialize() et unserialize()
slvn
Posté le 29-03-2003 à 15:13:26
non, je crois pas... ca s'étant avant register_global off et track_vars on
beleg
黑社會
Posté le 29-03-2003 à 15:18:25
Code :
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
echo "hello";
}
$_SESSION['count']++;
echo $_SESSION['count'];
?>
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = new Compteur();
echo "hello";
}
$_SESSION['count']->inc();
$_SESSION['count']->see();
?>
non ?
slvn
Posté le 29-03-2003 à 15:18:46
pb résolu :
dans le cas d'un type simple : isSet
dnas le cas d'un objet : is_object !
slvn
Posté le 29-03-2003 à 15:19:56
beleg > ce qeu tu marque c'est kif kif:
& == obtenir une référence sur l'objet de la session !
beleg
黑社會
Posté le 29-03-2003 à 15:26:29
je sais, c bien pour ca que je vois pas linteret de créer une variable $count pour agir sur $_SESSION["count"]
slvn
Posté le 29-03-2003 à 15:32:26
non, c simpelment plus facil de manipuler $count que $_SESSION['count']
.....
en fait, je me suis planté : ca résoud pas mon problème !!
en fait, le session_start() ne réccupère pas les objets que je met dans le table $_SESSION[] !! je capte pas !
beleg
黑社會
Posté le 29-03-2003 à 16:17:35
je viens de regarder un fichier session ... c de la forme : NOM | TYPE : LONGUEUR : VALEUR;
je suppose quil ne doit pas savoir comment sauvegarder ton objet, il faudrait le convertir dans un type symple genre array
edit : si il le sauve ... donc il doit pouvoir le recuperer .. test en cours.
jai sauvé ds $_SESSION["membre"] une instance de member
je recupere : __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => member [login] => yo [idmember] => 5 [idunique] => e69cbb8a06a7558e076c6c0162190d0e [idonline] => 446 [admin] => 2 )
Message édité par beleg le 29-03-2003 à 16:22:06
slvn
Posté le 29-03-2003 à 16:26:43
en, fait, le pb ne doit pas venir de la:
l'exemple marche bien tel qu'il est.
mais ca se comporte tres bizarrement quand on essaye de garder en session une instance Class A et que cette class A contient un champs qui est une instannce d'une classe B.
des lors, la session ne garde pu l'instance de A
Publicité
Posté le 29-03-2003 à 16:26:43
ethernal
Chercheur de vérité...
Posté le 29-03-2003 à 16:31:47
Code :
if (!is_object($_SESSION['userobj'])){
$_SESSION['userobj']= new user();
//ps : dans le constructeur $this->countPost=0;
}
$user= $_SESSION['userobj'];
echo $user->getPost(); //return $this->countPost;
$user->IncPost(); //=$this->countPost++;
//comme l'objet a été modifié, il faut le ressauver
$_SESSION['userobj']= $user;
chez moi ça fct toujours...
---------------
...oups kernel error...
beleg
黑社會
Posté le 29-03-2003 à 16:33:05
moi jai fait comme ca pr recuperer mon objet du coup
jai pas de classe sous la main comportant des objets, je peux pas aller plus loin ds le test
slvn
Posté le 29-03-2003 à 16:37:04
le pb est c'est qu'il n'a pas l'air de vouloir mettre en session un objec,t quand celui ci contient deja un objet!
j'essaye de te faire un exemple php
ethernal
Chercheur de vérité...
Posté le 29-03-2003 à 16:40:48
tu veux direq'un user qui a un objet caddy par ex, tu sais récupérer l'user, mais pas le caddy ?
$user= new user();
$user->caddy->addArticle('test',3);
ça c'est pas possible de le sauver dans une session ?
$_SESSION['user']= $user; $user2= $_SESSION['user'];
$user2->caddy->afficher(); //ne fonctionnerait pas ?
//comme l'objet a été modifié, il faut le ressauver
$_SESSION['userobj']= $user;
chez moi ça fct toujours...
, bah pas chez moi, mais ca va pas mempecher de sortir , on recherche un nouveau dev php mais tjrs pas de php de tres haut niveau technique ... 2 ans de dev de personnes dorigine diverses, c chaud a ratrapper , c un bordel
, bah pas chez moi, mais ca va pas mempecher de sortir , on recherche un nouveau dev php mais tjrs pas de php de tres haut niveau technique ... 2 ans de dev de personnes dorigine diverses, c chaud a ratrapper , c un bordel
heu... ils engagerait qq en homework à 400km de leur boite ??
fo imposer tes points de vues
---------------
...oups kernel error...
slvn
Posté le 29-03-2003 à 16:50:41
arggggggh, je viens de trouver le bug, ca vient de la methode __sleep !!