Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] sesje i obiekty
Forum PHP.pl > Forum > PHP
hhg
przypisuję do sesji obiekt:

  1. <?php
  2. class User {
  3.  
  4. var $id;
  5. var $username;
  6. var $password;
  7. var $email;
  8. var $address;
  9.  
  10. var $group;
  11.  
  12. function user($_id,$_username,$_password,$_email,$_address,$_group) {
  13. $this->id = $_id;
  14. $this->username = $_username;
  15. $this->password = md5($_password);
  16. $this->email = $_email;
  17. $this->address = $_address;
  18.  
  19. $this->group = $_group;
  20. }
  21.  
  22. }
  23.  
  24.  
  25. $_SESSION['user'] = new User(
  26. $tab['id'],
  27. $this->tbl['username'],
  28. $this->tbl['password'],
  29. $tab['email'],
  30. $tab['address'],
  31. $db_name
  32. );
  33. ?>



jednak jak poźniej po otworzeniu sesji na innej stronie odwołanie

  1. <?php
  2. $_SESSION['user']->username;
  3. ?>


zwaraca pusty ciąg znakow

dlaczego? źle się odwołuję, a może tak nie można?
mdco
A moze
  1. <?php
  2. echo $_SESSION['user']->username;
  3. ?>


Poza tym tworząc obiekt, wstawiasz "$this->tbl['username']" a to chyba nie tak miało być.

winksmiley.jpg
matix
Przede wszystkim zainteresuj się php5. Tam funkcja uruchamiająca się automatycznie to __construct(), czyli:

  1. <?
  2. Class Foo {
  3. public function __construct()
  4. {
  5. echo 'Funkcja konstrukcyjna z'.__FUNCTION__;
  6. }
  7. }
  8. $f = new Foo;
  9. ?>


Tak, źle się odwołujesz. Na razie nie mam możliwości sprawdzenia jak powinieneś się poprawnie odwoływać, ale na sam początek widzę, że w takiej klasie, która ma zwrócić jakiś wynik musisz użyć return.

Przykład:

  1. <?
  2. class foo {
  3. public function __construct()
  4. {
  5. return array ('aa' ,'bb');
  6. }
  7. }
  8.  
  9. $_SESSION['user'] = new foo;
  10. ?>


Aby dowiedzieć się jak zrobić odwołanie, skorzystaj (ja tak zawsze robię, gdy mam jakieś nowości:D) z print_r() (print_r($_SESSION['user'])).

Pozdrawiam smile.gif
hhg
Cytat
Przede wszystkim zainteresuj się php5. Tam funkcja uruchamiająca się automatycznie to __construct(), czyli:
piszę celowo na php4

Cytat
Tak, źle się odwołujesz. Na razie nie mam możliwości sprawdzenia jak powinieneś się poprawnie odwoływać, ale na sam początek widzę, że w takiej klasie, która ma zwrócić jakiś wynik musisz użyć return.
po co? nie chce zeby konstruktor cos zwracał, w zasadzie tu taka ewentualnosc odpada z założenia. Powinienem moc sie odwolywac do skladowych poprzez -> a w php4 sa publiczne.


juz znalazlem: serialize() unserialize()
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.