Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa do obsługi $_SESSION
uirapuru
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

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


Nie wiem, na ile to rozsądne rozwiązanie, ale pomiędzy moje klasy Uzytkownik i Profil, a przede wszystkim Mainframe (po nazwach mam nadzieje ze domyslacie sie do czego sluza) chce wprowadzic jedna warstwe, ktora bedzie posredniczyc pomiedzy nimi a sesją. Probuje to napisac, ale mam wrazenie, ze mam klopot z kilkoma jej instancjami. po wylogowaniu powinno byc session_destroy(), ale zostaje mi jedna zmienna w sesji wciąż (czas, kiedy sie polaczylismy ostatnio). Ładować sie w tym przypadku w Singleton (widziałem, że odradzają go wszyscy).

druga sprawa, że jakbym nie kombinował to
  1. <?php
  2. function test()
  3.    {
  4.        if(session_id()=="")
  5.        {
  6.            return false;
  7.        }
  8.        else
  9.        {
  10.            return true;
  11.        }    
  12.    }
  13. ?>


ZAWSZE zwraca true
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
uirapuru
post
Post #2





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

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


próbuję zaimplementować tego singletona w Sesja, dam znać.

co do test to tak, wiem, o to właśnie chodzi; test() ma za zadanie zwracac true jesli sesja istnieje (tzn ze is_session() niej jest rowne "") i odwrotnie w drugim przypadku. tyle, że to nie działa!

zdesperowany już ograniczam klase do czegos takiego tylko:

  1. <?
  2. class Sesja
  3. {
  4.    private static $instance;
  5.    private function __clone(){} //Uniemozliwia utworzenie kopii obiektu
  6.  
  7.    public static function getInstance ()
  8.    {
  9.        if (self::$instance === null) {
  10.            self::$instance = new self();
  11.        }
  12.        return self::$instance;
  13.    }
  14.  
  15.    private function __construct()
  16.    {
  17.        if(!$this->test())
  18.        {
  19.            session_start();
  20.        }
  21.    }    
  22.  
  23.    function test()
  24.    {
  25.        if(session_id()=="")
  26.        {
  27.            return false;
  28.        }
  29.        else
  30.        {
  31.            return true;
  32.        }    
  33.    }
  34.    function destroy()
  35.    {
  36.        if($this->test())
  37.        {
  38.            $this->set("loggedin",false);
  39.            session_destroy();
  40.        }
  41.    }
  42.    function set($key,$val)
  43.    {
  44.        if($this->test())
  45.        {
  46.            $_SESSION[$key]=$val;
  47.        }
  48.    }
  49.    function get($key,$val)
  50.    {
  51.        if($this->test())
  52.        {
  53.            return $_SESSION[$key];
  54.        }
  55.    }    
  56. }
  57. ?>


czekam na uwagi,
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 22:12