Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przechowywanie informacji o aktualnie zalogowanym użytkowniku
Forum PHP.pl > Forum > PHP
IceManSpy
Witam

Jak w temacie. W jaki sposób przechowywać dane np typ użytkownika, jego numer, imię, nick itd. Wiem, że ogólnie trzyma się to w bazie, ale gdzie trzymać po zalogowaniu?
Za każdym razem odwoływanie się do bazy w celu sprawdzenia np typu czy imienia to może ją wykończyć. Więc wpadłem na pomysł aby trzymać to w sesji. I np po zalogowaniu zrobić sobie takie coś: $_SESSION['imie'] , $_SESSION['typ'] itd. Co o tym myślicie?
Zawsze pozostaje ciastko, ale to w ostateczności, ponieważ nie chce, aby ktoś mógł zmienić pewne wartości.
tr@k
Pomysł z sesją jest dobry i łatwy w użyciu smile.gif
CuteOne
A co jak ktoś zmieni swoje dane? np. nick? będziesz porównywał za każdym razem wartości z sesji ze zmienionymi? Już chyba lepiej cachować zapytanie do bazy..
wookieb
Po zalogowaniu trzymasz tylko id użytkownika. W razie potrzeby pobierasz z bazy (bądź innych źródeł danych) a wynik pobrania zapisujesz w cache-u.
thek
Rozwiązaniem jest także aktualizacja w sesji tego, co zmieniłeś. User nie zmienia rzeczy wszystkich, a nawet drobne zmiany są dokonywane rzadko. Przykładowo jeśli zmienił login lub hasło, to gdy z bazy dostaniesz informację o prawidłowym UPDATE/INSERT, aktualizujesz dane w sesji i tyle.
tr@k
Cytat(CuteOne @ 10.11.2010, 07:08:48 ) *
A co jak ktoś zmieni swoje dane? np. nick? będziesz porównywał za każdym razem wartości z sesji ze zmienionymi? Już chyba lepiej cachować zapytanie do bazy..

A jak często zmieniasz dane w profilu? A nick to w większości serwisów jest nieedytowalny. Tak jak pisał @thek przy zapisie zmian do bazy aktualizujesz również sesję.
thek
To, że nie jest w większości to tylko kwestia lenistwa i faktycznej jednoznaczności winksmiley.jpg Pole to pole. To czy raz będziesz "zuza" czy "ala" jest nieważne, dopóki loginy są unikalne w bazie.

Wiele osób zapomina zmieniać dane w sesji po update lub robi najprostszą możliwą rzecz. Olewa to, zostawiając systemowi kontroli wyłapanie niezgodności danych sesji z danymi bazy, czyli powodujące automatyczne wylogowanie. Dla mnie to dziwne zachowanie skoro owa aktualizacja jest banalna i wywalanie usera jest zwyczajnie upierdliwe winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.