Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] sesje i obiekty
hhg
post 29.07.2007, 18:39:16
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

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


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?
Go to the top of the page
+Quote Post
mdco
post 29.07.2007, 19:06:47
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

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


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

Ten post edytował mdco 29.07.2007, 20:03:32


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
matix
post 29.07.2007, 19:11:07
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


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


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
Go to the top of the page
+Quote Post
hhg
post 29.07.2007, 19:15:23
Post #4





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

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


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()
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:05