Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] $_SESSION a klasa
Forum PHP.pl > Forum > Przedszkole
Salve
Witam!

Mam kolejny problem przesyłam sobie tablicę $_SESSION do klasy jednak ta nie działa jak powinna.

Zmienne w tablicy są bo dodanie
  1. <?php
  2. Print_R($_SESSION);
  3. ?>
w pliku index.php wyświetla ładnie dane.

plik index.php
  1. <?php
  2. include_once('config.php');
  3. include_once('klasa.php');
  4.  
  5. $user = new user($_SESSION);
  6.  
  7. if( $user->logged == true )
  8. {
  9. // kod
  10. }
  11. elseif( $user->logged == false )
  12. {
  13. // kod
  14. }
  15. ?>


plik klasa.php
  1. <?php
  2. class user
  3. {
  4.    private $_aSession;
  5.    private $_isLogged = false;
  6.  
  7.    public function __consturct($aSession)
  8.    {
  9.        $this->_aSession = $aSession;
  10.    }
  11.  
  12.    public function logged()
  13.    {
  14.        ( $this->_aSession['logged'] == 1 ) ? $this->_isLogged = true : $this->_isLogged = false;
  15.        return $this->_isLogged;
  16.    }
  17. }
  18. ?>


W klasie user tablica się traci. Jakieś pomysły ?
Fifi209
$_SESSION to zmienna (super) globalna, co oznacza że jest dostępna w kodzie z każdego miejsca, tak więc nie musisz jej przekazywać jako parametr do klasy.

Poza tym kod:
  1. <?php
  2. private $_isLogged = false;
  3. ?>


WTF? smile.gif
antyqjon
Literówka w nazwie konstruktora.
Salve
Wiem, że $_SESSION jest zmienną superglobalną, co jest źle w
  1. <?php
  2. private $_isLogged = false;
  3. ?>
Fifi209
Cytat(Salve @ 20.07.2009, 11:11:54 ) *
Wiem, że $_SESSION jest zmienną superglobalną

Więc po jaką cholerę ją pchasz do tego konstruktora i w konsekwencji do tworzonego obiektu?

Cytat(Salve @ 20.07.2009, 11:11:54 ) *
co jest źle w
  1. <?php
  2. private $_isLogged = false;
  3. ?>

Jest bez sensu bo i tak podczas tworzenia obiektu przypisujesz inną wartość.
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.