Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obiekt w sesji
Forum PHP.pl > Forum > Przedszkole
Homiczek
Witam.
php już się trochę "bawiłem" ale dopiero teraz zaczynam próby skorzystania z funkcji, obiektów i sesji smile.gif lepiej późno niż w wcale guitar.gif

I mam następujący problem w przesłaniem obiektu przez sesje.

oto kod:
Definicja klasy - plik klasy.php
  1. <?
  2. class Szukaj{
  3. var $typ;
  4. var $marka;
  5. var $model;
  6. function Szukaj($a, $b, $c){
  7.  $this->typ = $a;
  8.  $this->marka = $b;
  9.  $this->model = $c;
  10. }
  11. function Wypisz(){
  12.  echo $this->typ;
  13.  echo $this->marka;
  14.  echo $this->model;
  15. }
  16. }
  17. ?>

plik test1.php
  1. <?
  2. include (&#092;"klasy.php\");
  3. $dane = new Szukaj('osob ', 'opel ', 'astra ');
  4. $dane->Wypisz();
  5. session_register (&#092;"dane\");
  6. ?>
  7. <A Href=\"test2.php\">test2</A>

plik test2.php
  1. <?
  2. include (&#092;"klasy.php\");
  3. $dane->Wypisz();
  4. ?>


I chodzi o to aby przekazać obiekt $dane z pliku test1 do pliku test2.

Jak widzicie dlaczego metoda wypisz nic nie wypisuje to mnie oświećcie smile.gif
Może walnąłem jakiegoś byka smile.gif
Dodam, że pojedyncza zmienna przechodzi przez sesje.
Przeszukałem troche net i nie mogłem znaleźć nic podobnego.
Z góry dziękuję i pozdrawiam smile.gif
Yarecki
Zrób tak:
w test1.php
  1. <?php
  2. $_SESSION['zmienna'] = $dane;
  3. ?>


w test2.php
  1. <?php
  2. $_SESSION['zmienna']->Wypisz();
  3. ?>


session_register ("dane"); tworzy zmienna $_SESSION['dane'], ale nic jej nie przyporządkowuje.

Wygodniej jest od razu stosować zapis $_SESSION['dane'] = ...
bela
1. Nie używaj session_register tylko zmiennej superglobalne $_SESSION. Czemu? Manual biggrin.gif

2.
  1. <?php
  2. $_SESSION['dane'] = serialize($obiekt);
  3. ?>


Drugi plik
  1. <?php
  2. $obiekt = userialize($_SESSION['dane']);
  3. ?>


Jakos tak biggrin.gif
crash
W drugim pliku nie zapomnij o dołączeniu definicji klasy przed deserializacją.
Homiczek
Dzienki za odpowiedzi które mnie naprowadziły.

W mojej wersji wystarczyło zamienić kolejność: sess_register(dane) najpierw a dopiero potem $dane = new Szukaj....
I zadziałało.

Ale posłucham was i sprawdze co daje zastosowanie $_SESSION smile.gif

Dzienki i pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.