Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak sprawdzić czy użytkownik jest zalogowany?
Forum PHP.pl > Forum > PHP
AlekM
Cześć!
Mam system logowania oparty na sesjach.
Chciałbym aby w profilu użytkowników było pokazane czy dany user jest zalogowany, czy też nie.
Jak sprawdzić czy dany user jest aktualnie online?

Zapisywać dane o dostępności w bazie danych (przy logowaniu i wylogowywaniu)? Ale co wtedy jak user nie wyloguje się, tylko zamknie przeglądarkę?

Bardzo proszę o pomoc.
John
Możesz tak zrobić a w przypadku, gdy user zamyka przeglądarkę a nie się wyglogowuje możesz posłużyć się JavaScript'em, jeśli dobrze pamiętam jest tam event związany z zamykaniem okna.
AlekM
A nie da się jakoś inaczej?
Czasami ktoś może mieć wyłączone javascript.
pojas
Jak narazie nie widziałem innego rozwiązania sad.gif
Możesz ustawić czas "życia" sesji, a po jej "śmierci" system usuwa wpis o użytkowniku ( już sobie poszedł ). Jednak jest to rozwiązanie z opóźnionym zapłonem - user wyjdzie teraz a sesja sobie żyje, zamordują ją za 10 minut. Takie rozwiązanie jest (chyba) w Mambo cms, więc to chyba nie najgorszy pomysł.

*chyba - bo wiem, że działa z opóźnieniem i zapisuje sesje w bazie danych.
John
pojas jest tylko jeden mały mankament tego co powiedziałeś, nawet jeśli sesja umrze to nie wykreśli użytkownika z katalogu osób online. Też mnie zawsze zastanawiało jak to rozwiązać, wydaje mi się,że to trzeba jednak robić na socketach.
pojas
Możliwe, że masz rację. Trudne zagadnienie guitar.gif

Co w przypadku gdy w bazie też zapisze czas "śmierci"? Skrypt sprawdzałby w "zyjących" sesjach ( wpisach w bazie ) czy czasem jakaś nie chce "umrzeć". Wykonywane przy każdym wyświetleniu - baza byłaby opóźniona, ale kto ogląda bazę. Strona byłaby aktualna. Jednak dużo pracy by miał serwer - za każdym klikiem ( żądaniem strony ) sprawdzać ( i w razie czego - edytować ) wszytkie sesje...


edit: Dodatkowo każdy sygnał życia użyszkodnika przedłuża życie sesji ( kolejne zadanie dla MySQL ).
kosmowariat
Cytat(pojas @ 2.08.2007, 18:47:33 ) *
użyszkodnika


sorki ale nie wyrobiłem laugh.gif withstupidsmiley.gif
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.