Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak sprawdzić czy użytkownik jest zalogowany?
AlekM
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 14.10.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
John
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 11
Dołączył: 1.08.2007
Skąd: Poland,Warsaw

Ostrzeżenie: (0%)
-----


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.


--------------------
Odpowiedź na wszystko : manual,appendix. Ulubiona książka : PHP 5 for Dummies.
Studia uh ? ;-).
Go to the top of the page
+Quote Post
AlekM
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 14.10.2006

Ostrzeżenie: (0%)
-----


A nie da się jakoś inaczej?
Czasami ktoś może mieć wyłączone javascript.
Go to the top of the page
+Quote Post
pojas
post
Post #4





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

Ostrzeżenie: (0%)
-----


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.

Ten post edytował pojas 2.08.2007, 16:37:52
Go to the top of the page
+Quote Post
John
post
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 11
Dołączył: 1.08.2007
Skąd: Poland,Warsaw

Ostrzeżenie: (0%)
-----


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.


--------------------
Odpowiedź na wszystko : manual,appendix. Ulubiona książka : PHP 5 for Dummies.
Studia uh ? ;-).
Go to the top of the page
+Quote Post
pojas
post
Post #6





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

Ostrzeżenie: (0%)
-----


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

Ten post edytował pojas 2.08.2007, 17:51:19
Go to the top of the page
+Quote Post
kosmowariat
post
Post #7





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Cytat(pojas @ 2.08.2007, 18:47:33 ) *
użyszkodnika


sorki ale nie wyrobiłem laugh.gif withstupidsmiley.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 20:27