[ TriLLi @ 01.11.2006. 18:10 ] @
e ovako javlja mi se problem,
napravio sam clasu config
koja lodira podatke iz baze potrebne za neke osnovne stvari na web-u
eh kad stavim čitav taj objekt u sessiju
pa nakon ponovnog učitavanja stranice provjeravam da li objekt postoji u sessiji
on mi vrati da postoji i onda ja samo ga dodjelim varijabli
pa tražim recimo $config->GetAdminMail();
i govori mi da pokušavam izvršiti metod na ne objektom
ako neko ima riješenje kako ovo ide da mi javi
thanks unaprijed
[ Nemanja Avramović @ 01.11.2006. 18:20 ] @
Čisto sumnjam da možeš objekat da ubaciš u sesiju... zar nema neko drugačije rešenje?
[ TriLLi @ 01.11.2006. 18:21 ] @
ne znam, programiram inače u .NET-u i php-u,
u .NET C# objekt mogu staviti u sessiju i poslije ga koristiti
u PHP-u vjerovatno može smao ne znam još
[ fimalbonegaculo @ 01.11.2006. 21:01 ] @
hm...

http://hr.php.net/manual/en/ref.session.php
[ agvozden @ 02.11.2006. 08:18 ] @
Ne moze se uvuci objekat direktno u sesiju.

Cini mi se da to moze preko serialize(), ali to nisam proveravao...
[ brainbuger @ 06.11.2006. 12:16 ] @
Moze preko Serialize/Unserialize, kod mene radi na PHP 5.0.4, mislim da bi trebalo i na 4.x.
Ono sto Serialize uradi jeste da napravi byte-stream od tvog objekta kojeg mozes da sacuvas u SESSION,
nakon toga, (npr. na nekoj drugoj stranici) sa Unserialize rekreiras taj objekat.
Bitno je da definicija klase bude prisutna u oba slucaja, i kada pozivas Serialize i kada pozivas Unserialize.
Code:

////////////////class_conf.php
class conf
{
   var $parametar = 1;  
   function show_parametar() {print $this->parametar;}
}
////////////////

if(!isset($_SESION['conf']))
{
  require class_conf.php;
  $this->conf = new conf();
  $s = serialize($this->conf);
  $_SESSION['conf'] = $s;
  print "conf kreiran";
 }
else
 {
  require "class_conf.php"; //definicija klase mora biti prisutna
  $u = unserialize($_SESSION['conf']);
  $this->conf = $u;
  $this->conf->show_parametar();
  print "conf preuzet iz sesije";      
}
Medjutim, ne bih ti preporucio da konfiguracioni objekat svoje aplikacije prenosis u sesiji, ima mnogo jednostavnijih
i boljih resenja za to. Pretpostavljam da ces taj conf objekat cesto pozivati iz ostalih funkcija, i sigurno ce se ukazati potreba da tvoj conf objekat ima u sebi i neke druge (pod)objekte, onda od ovakvog resenja nema vise nista. Unserializovane adrese tih (pod)objekata nece vise vaziti.