![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałem zrobić coś w stylu cache ale na tablicach. Mianowicie jeżeli użytkownik zaloguje się poprawnie to do różnych tablic robię zrzut (prawie) całej bazy. Robię to po to żeby nie łączyć się z bazą za każdym razem kiedy użytkownik przejdzie na inna podstronę. I mam taki mały problem bo nie wiem jak zrobić żeby ta tablica była widoczna wszędzie. Mam Klasę Login.class.php i tam jest metoda loadUser() i jak przejdzie wszystkie warunki to wywołuję klasę cache.class.php z metodą loadChache() która ładuje (prawie) wszystkie tabele do różnych tablic. Przechodząc dalej do metody loadUser() jak user poprawnie się zaloguje i poprawnie załaduje się baza to automatycznie zastaje prze kierowany do index.php. i tutaj mam problem bo nie wiem jak zabardzo zrobić tą tablicę (niby) globalną a nie chcę za bardzo tego umieszczać w tablicy $_SESSION. Jeszcze wspomnę że klasa loadCache() jest wywoływana tylko raz by załadować a chciałem użyć metody type getTable1, getTable2 itp. by pobierać tablice załadowane. Czy jest jakieś rozwiązanie, i czy w ogóle to jest dobry pomysł na ten cach? Moim zdaniem tak bo pozbywamy się zapytań do bazy, ale wolę usłyszeć wypowiedzi ekspertów bo jeszcze nie wiem czy potrzebnie się męczę. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
ID sesji jest przechowywane przez cookie nadawane przy pierwszym połączeniu użytkownika z serwerem. Serwer rozpoznaje do ID i podaje skryptowi odpowiednie dane do _SESSION. Niestety jest prosta możliwość podszycia się pod kogoś - wystarczy ukraść mu ciastko i podawać się pod jego ID sesji. Można się przed tym prost zabezpieczyć sprawdzając np. IP klienta przy każdym wywołaniu strony. Możliwość jest, ale [nie]stety bardzo nikłe szanse na użycie jej przez potencjalnego atakującego - musiałby dostać się do komputerów innych użytkowników, albo podsłuchiwać tony pakietów.
@aart3k: wszędzie to nie - ale jak już istnieje klasę cache to ją wykorzystajmy korzystając z wzorów projektowych. Po za tym używanie wszędzie $_SESSION jest dla mnie raczej nie estetyczne, więc jak tylko mogę uciekam od tego. Kwestia przyzwyczajeń programistycznych, bo wydajność na tym poziomie można zaniedbać. Ten post edytował Quadina 1.12.2010, 13:17:33 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 08:17 |