Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Gdzie przechowywać nazwę zalogowanego użytkownika
blum1
post 1.10.2008, 08:32:59
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 1.10.2008, 08:35:55
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 1.10.2008, 08:41:42
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.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
webdice
post 1.10.2008, 08:44:55
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 1.10.2008, 09:36:21
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ść.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
gladiror
post 1.10.2008, 11:47:12
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?


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
NaVarion
post 1.10.2008, 12:45:45
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?


--------------------
Cytuję z naszej-klasy:
Cytat
to masz problem ja chce dobic do 200 znajomych masz przyjac to holerne zaproszenie
Go to the top of the page
+Quote Post
blooregard
post 1.10.2008, 12:53:39
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.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
nexis
post 1.10.2008, 12:59:21
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.


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 13:12