Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Gdzie przechowywać nazwę zalogowanego użytkownika
blum1
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 24.04.2007

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


Witam
Mam dwa pytania natury projektowej.
Zrobiłem sobie prostą klasę do obsługi logowania.
Po zalogowaniu w sesji trzymam tylko id usera natomiast przy każdym odświeżeniu strony pobieram z bazy nazwę użytkownika (jedna sqlka) i uprawnienia do modułów (druga sqlka).
I tu pytanie czy takie podejście jest dobre czy może lepiej po zalogowaniu wczytać do sesji przynajmniej nazwę użytkownika co wyeliminowało by jedno zapytanie?
Jak u was w aplikacjach jest to rozwiązane ile rzeczy trzymacie w sesji czy tylko te najważniejsze czy używacie ją dość mocno jako "magazynek" ?

Pozdrawiam
Go to the top of the page
+Quote Post
dd1234
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 3.07.2008

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


Witam,
Ja trzymam w sesji nazwę użytkownika i zmienną okreśającą poziom uprawnień. Nie wiem, czy jest to super fachowo, ale dział i jest dosyć proste do oprogramowania
Pozdrawiam
Go to the top of the page
+Quote Post
blooregard
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Nie ma przeszkód, byś również inne dane usera trzymał sobie w sesji.

Natomiast uprawnienia odczytuj z bazy. Dlaczego? A np. dlatego, że jeśli ktos się zaloguje, a w międzyczasie admin zmieni mu uprawnienia dostępu do któregoś z modułów, on nadal będzie miał do niego dostęp, bo uprawnienia sprzed zmiany będą zapisane w sesji.
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Elegancko było by trzymać tylko ID użytkownika, a inne dane wyciągać z bazy w tych miejscach które są potrzebne, ale jak wiadomo programowanie to sztuka kompromisów i na poczet wydajności lepiej trzymać wszystko w sesji.

Cytat(blooregard @ 1.10.2008, 09:41:42 ) *
(...) Natomiast uprawnienia odczytuj z bazy. Dlaczego? A np. dlatego, że jeśli ktos się zaloguje, a w międzyczasie admin zmieni mu uprawnienia dostępu do któregoś z modułów, on nadal będzie miał do niego dostęp, bo uprawnienia sprzed zmiany będą zapisane w sesji.


To się wyloguje i zaloguje jeszcze raz, wyobraź sobie że przykładowo na naszej klasie za każdym razem jest odpytywana baza o to czy użytkownik ma dostęp do danej podstrony.
Go to the top of the page
+Quote Post
blooregard
post
Post #5


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




No właśnie - skoro za każdym razem jest ona odpytywana, po co trzymac uprawnienia w sesji ?

A co do wylogowania/zalogowania jeszcze raz: jeśli admin usunie komuś uprawnienia do czegoś, do czego ten ktoś chciałby mieć jeszcze chwilkę dostęp, na pewno nie strzeli sobie w stopę robiąc logout/login, tylko będzie korzystał, dopóki ma stare uprawniena w sesji. Chodzi mi o sytuację, gdy ma w tym korzyść.
Go to the top of the page
+Quote Post
gladiror
post
Post #6





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


Jak za każdym razem będziesz odpytywać bazę o takie rzeczy to zobaczysz jak to spowolni bazę... Wyobraź sobie że masz kilka tysięcy użytkowników danej strony i baza musi obsłużyć kilkadziesiąt tysięcy zapytań tych użytkowników... Czyżby strony ładowały się kilka sekund?
Go to the top of the page
+Quote Post
NaVarion
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.02.2008

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


Cytat(blooregard @ 1.10.2008, 10:36:21 ) *
No właśnie - skoro za każdym razem jest ona odpytywana, po co trzymac uprawnienia w sesji ?

A co do wylogowania/zalogowania jeszcze raz: jeśli admin usunie komuś uprawnienia do czegoś, do czego ten ktoś chciałby mieć jeszcze chwilkę dostęp, na pewno nie strzeli sobie w stopę robiąc logout/login, tylko będzie korzystał, dopóki ma stare uprawniena w sesji. Chodzi mi o sytuację, gdy ma w tym korzyść.



To może kodzik, dzięki któremu admin będzie mógł zmienić u użytkownika, by po odświeżeniu strony go wylogowało?
Go to the top of the page
+Quote Post
blooregard
post
Post #8


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




No co racja to racja z tymi zapytaniami. Ale w aplikacjach zamkniętych, z których korzysta w porywach kilkadziesiąt osób naraz nie widzę problemu. 

Reasumując: każdy sposób jest dobry, jeśli spełnia oczekiwania twórcy i uzytkowników, działa zgodnie z oczekiwaniami i nie powoduje błędów.
Go to the top of the page
+Quote Post
nexis
post
Post #9





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Z prawidłowego punktu widzenia w sesji powinieneś trzymać tylko ID użytkownika i bardzo prawdopodobne jest, że nie tworzysz aplikacji dla tysięcy użytkowników, więc nie odbije się to w żaden sposób na Twojej aplikacji.
Go to the top of the page
+Quote Post

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: 15.09.2025 - 23:28