Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> obiekt w sesji
Homiczek
post 11.02.2005, 15:12:50
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Yarecki
post 11.02.2005, 15:23:22
Post #2





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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'] = ...

Ten post edytował Yarecki 11.02.2005, 15:25:09


--------------------
Nigdy nie kłóć się z głupim, ludzie mogą nie dostrzec różnicy.
Go to the top of the page
+Quote Post
bela
post 11.02.2005, 15:25:51
Post #3


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
crash
post 11.02.2005, 16:28:13
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


W drugim pliku nie zapomnij o dołączeniu definicji klasy przed deserializacją.


--------------------
Go to the top of the page
+Quote Post
Homiczek
post 11.02.2005, 23:42:34
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:34