![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 377 Pomógł: 9 Dołączył: 2.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć, myślę jak zrobić automatyczne logowanie, ponieważ trwanie sesji jest zbyt krótkie - trwa tyle co jest włączona strona, a chce zrobić aby np.: takie logowanie trwało czas nieokreślony (wieczność..., albo 2dni dla bezpieczeństwa)
I jak to ma mniej więcej działać, wymyśliłem to tak: 1. Użytkownik loguje się, gdy poprawnie się zalogował to tworzę ciasto w którym daje wartość, jakiś kod typu: $key = md5(uniqid(mt_rand(), true));, czas trwania 30dni, oraz do bazy danych: klucz, id_użytkownika, czas_trwania (time()+2*8600) Opcja dalsza, zamknie okno i wróci za moment, sesja już wygasła. 2. Warunek, czy sesja istnieję (w tym momencie FLASE) to wczytuję ciasteczko i pobiera z niego klucz.. następnie w bazie szuka tego klucza i sprawdza czy czas trwania nie wygasł, jeśli tak to: usuwa ciasteczko oraz tą wartość i tworzy nowy key i generuje ponownie nowy rekord do bazy i nowe ciasto i oczywiście loguje użytkownika, gdyż w bazie jest zapisany jego id, wiec na niego loguje.. Gdy ciasteczko wygasło czyli ponad 30dni.. - nic się nie dzieje, bo nie ma ciasteczka... użytkownik widzi tylko stronę dla niezalogowanego. Czy to będzie na pewno dobrze pomyślane czy może coś poprawić ?. Pozdrawiam.. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Wypowiadałem się już na ten temat tutaj gdzieś, ale powtórzę się, bo dłużej tego będę szukał niż potrwa napisanie tego od nowa
![]() Przy logowaniu usera sprawdzasz czy user zaznaczył checkbox'a (Zaloguj mnie automatycznie: [checkbox]). Jeśli tak to: 1). Generujesz losowe id, mozna np. tak: 2). aktualizujesz temu userowi, który się loguje w bazie jakieś pole, nazwijmy je autologin_id. Wrzucasz do niego wartość z powyższego 'losowania' znaków 3). tworzysz mu ciasteczko np. o nazwie autologin_id z żywotnością jaką tam chcesz, ja u siebie mam 30 dni. Jako wartość też wstawiasz wylosowane znaki. 4). wrzucasz mu do bazy też jego user_agent, tak dla pewności i przy logowaniu sprawdzasz czy obecny user_agent zgadza się z tym z ostatniego logowania 5). sam warunek sprawdzający: Ten post edytował Michael2318 6.03.2013, 08:15:38 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 06:03 |