![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 1 Dołączył: 20.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem, ponieważ nie za bardzo wiem jak zapisać informację o dacie i godzinie wylogowania użytkownika.
Problemu nie ma, gdy użytkownik naciśnie przycisk Wyloguj i opuści konto, jednak co zrobić gdy użytkownik tego nie zrobi i zamknie okno lub przeglądarkę? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Ustawić odpowiedni czas życia sesji.
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 1 Dołączył: 20.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
wymyśliłem taką funkcję
będzie to działać? Ten post edytował macromatic 29.12.2010, 14:15:46 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź i zobacz ?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 8 Dołączył: 10.11.2010 Skąd: Polska,Katowice Ostrzeżenie: (0%) ![]() ![]() |
To nie jest potrzebne, a raczej zbędne. Robisz 2 razy to samo. Bo Update samo w sobie też ma SELECT podczas WHERE. Nie rozumiem po co ustawiać aktualny czas dla osób który już są wylogowane.
Jeśli status_online jest int-em to nie używaj cudzysłowa. Nie potrzebnie mysql będzie to konwertował. To samo tyczy się czasu w UNIX Ten post edytował kulczycki 29.12.2010, 17:30:02 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast funkcji można użyć COOKIES ustawić czas na 15 min przyrównać do SESSION .Kiedy COOKIES wygaśnie wygaśnie również sesja, co będzie efektem wylogowania.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 8 Dołączył: 10.11.2010 Skąd: Polska,Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zamiast funkcji można użyć COOKIES ustawić czas na 15 min przyrównać do SESSION .Kiedy COOKIES wygaśnie wygaśnie również sesja, co będzie efektem wylogowania. Kwestia sesji to jak dla mnie inna sprawa. Pewnie ma kolumnę session_key w tabeli odpowiedzialnej za konta (tak sądzę). To wszystko powinno wyglądać tak $_SESSION['key'] > sprawdzanie w bazie key wraz z ip > sprawdzanie czas ostatniej aktualizacji sesji > jeśli większe od time()-15 minut to sesja dalej aktywna jeśli nie to czyści session_key, status_online zeruje i $_SESSION['key'] = ''; np. Jak tam wole w cookies tego nie pakować jakoś Reszta (czyszczenie starych sesji to kosmetyka + statystyki np.) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 2 Dołączył: 23.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
przy okazji chciałem zapytać po co się robi w bazie pole klucz sesji? Uczę się z książek jeszcze się z tym nie spotkałem natomiast na forach często widzę o tym tematy pośrednie. Domyślam się że po to by weryfikować czy użytkownik który się zalogował to właśnie ten użytkownik który wysyła requesty? Coś poza tym?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 1 Dołączył: 20.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
To nie jest potrzebne, a raczej zbędne. Robisz 2 razy to samo. Bo Update samo w sobie też ma SELECT podczas WHERE. Nie rozumiem po co ustawiać aktualny czas dla osób który już są wylogowane.
Jeśli status_online jest int-em to nie używaj cudzysłowa. Nie potrzebnie mysql będzie to konwertował. To samo tyczy się czasu w UNIX godzina wylogowania potrzebna mi jest aby przy następnym zalogowaniu pokazać użytkownikowi co się zmieniło od jego wyjścia... dzięki za cenne wskazówki |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:10 |