IceManSpy
9.11.2010, 22:35:09
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.
Pomysł z sesją jest dobry i łatwy w użyciu
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..
wookieb
10.11.2010, 08:40:13
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
10.11.2010, 10:47:12
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
10.11.2010, 13:53:14
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
10.11.2010, 15:33:12
To, że nie jest w większości to tylko kwestia lenistwa i faktycznej jednoznaczności

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
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.