![]() |
![]() ![]() |
![]() |
![]()
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
ZAWSZE zwraca true |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Owszem, są głosy, że singleton to głupota, ale jakoś nikomu nie przeszkadza powszechne jego stosowanie. Singletona znajdziesz w bardzo dużej liczbie projektów, m.in. takiego kalibru, jak Zend Framework...
Jeśli chodzi o kod, to jeśli masz aktywną sesję, nigdy nie zwróci Ci on wartości pustej. Kiedy sesja jest tworzona, dostaje losowy identyfikator (lub wzięty z URL-a) i wtedy zawsze dostaniesz ten identyfikator. |
|
|
![]()
Post
#3
|
|
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:
czekam na uwagi, |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
niestety nie jestem w stanie pomóc, ale mam pytanie ;]
Kod function get($key,$val) { if($this->test()) { return $_SESSION[$key]; } } poco jest tutaj to $val (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? z tego co widze to jest tylko używana zmianna $key |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
uirapuru, patrząc na tę klasę:
1. czy zamiast get nie powinno byc __get? (analogiczne w set) 2. tak jak @Zyx napisał, zawsze będzie fałszem: session_id()=="" zamiast session_destroy zrób tak (PHP >= 5.1) session_regenerate_id(true); // usuwa starą sesję i przydziela nowy identyfikator i ustaw jakąs swoja zmienna, że wylogowałes usera i po tej zmienej sprawdzaj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 9 Dołączył: 30.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
@peter: faktycznie, po poscie sam to znalazlem i wywalilem
@rzymek: lamerskie pytanie, nie zajrzę do manuala (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) __get? a czym sie bedzie roznic w uzyciu od mojego wlasnego get() ? dobra, fajny art o metodach magicznych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 03:33 |