![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Chcialbym abyscie podpowiedzieli mi czy ma cos takiego sens i sie oplaca robic, mianowicie:
Poniewaz i tak bede pisal klase user ktrora bedzie trzymac dane i zarzadzac userem pomyslalem sobie ze "moze" fajnie bedzie trzymac w sesji caly ten obiekt zamiast zwyklego np $_SESSION['id_user']. Czy to jest dobry pomysl? Bo w sumie pozniej napisze sobie tylko metody jak getIdUser ktore beda zwracac mi dane tak samo sesje chcialbym tworzyc przez setIdUser (te nazwy funckje teraz tak wymyslam tylko ) pozniej tylko caly obiekt wlozylbym do sesji oczywiscie wczesniej stworzyl bym przeznacza na to przestrzen dla sesji np $_SESSION['session'] = new User(); |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wstaw sobie do tabelki z użytkownikami dodatkową kolumnę, w której będziesz przechowywał ich ostatnie ID sesji. Dodatkowo potrzebujesz sposobu na odczytanie danych sesyjnych na podstawie tego ID. Sposoby są dwa:
1. Własny "session save_handler" i zapisywanie danych sesji w bazie (lub innym łatwo dostępnym miejscu) + odczyt zserializowanych danych sesyjnych użytkownika + unserialize/serialize 2. I moim zdaniem bardziej hardkorowe: Tymczasowa zmiana sesji administratora na sesję użytkownika, modyfikacja zmiennych, powrót do sesji administratora (session_id, session_write_close i inne) I teraz administrator, gdy chce zbanować użytkownika to: - zapisuje w bazie danych w tabeli z użytkownikami, że jest zbanowany oraz: - odczytuje sessionID użytkownika - uzyskuje dostęp do jego sesji - usuwa informację o "zalogowaniu użytkownika" z sesji Zalogowany zbanowany użytkownik, gdy odświeży stronę nie będzie już zalogowany (bo admin usunął ta informację z jego sesji), a po próbie zalogowania się na stronie dostanie info, że dostał bana. Oczywiście jest to trochę ciężkie do napisania. O wiele prościej przy każdym wyświetleniu strony robić
i na tej podstawie sprawdzać, czy jest zbanowany itp., ale wtedy nie potrzebujesz obiektu klasy User trzymać w sesji - wystarczy samo ID użytkownika. Ten post edytował Noidea 6.09.2010, 12:48:11 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 19:40 |