![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jak najbardziej optymalnie zrobić moduł do pokazywania kto jest online z zalogowanych userów? Mam skrypt logowania. Tylko nie wiem zbytnio jak zapisać w nim dane o tym czy user jest online czy nie. Jak się to robi profesjonalnie i w miarę optymalnie żeby bazy nie zabić duża ilością zapytań. Dzięki -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Jak już masz bazę danych z userami i tylko ich chcesz podliczać, to dodaj do bazy komórkę TIMESTAMP, która będzie się update`owana aktualnym czasem przy każdych odwiedzinach usera.
Następnie przyjmujesz orientacyjnie średni czas przez jaki user jest na stronie np. 5 min i w miejscu gdzie chcesz wyświetlić licznik wyciągasz z bazy danych wszystkich userów, którzy byli w ciągu tych ostatnich przykładowych pięciu minut. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
no tak myślałem o tym ale to by wymagało robienia tego updata za każdą najprostszą akcją na stronie.
Nie ma innej opcji? -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
no tak myślałem o tym ale to by wymagało robienia tego updata za każdą najprostszą akcją na stronie. Nie ma innej opcji? Powiedz najpierw w czym chcesz lepszą opcję, bo ja znam gorszą (bardziej obciąża serwer), ale może Tobie bardziej się spodoba, bo działa dokładniej. Chodzi o to, że możesz dorzucić do strony skrypt, który przy pomocy ajaxa co minutę lub częściej będzie dawał o sobie znać, że user jeszcze jest na stronie. Będziesz miał dokładniejsze wyniki, jeśli o to chodzi? -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 309 Pomógł: 20 Dołączył: 13.02.2010 Skąd: Kęty Ostrzeżenie: (0%) ![]() ![]() |
Ja pisałem kiedyś takie coś i mam zrobione tak:
- osobną tabelę "zalogowani"
- oczywiście łączenie i do sesji zapisuje login użytkownika - następnie zapytanie i wstawiam użytkownika do tabeli
- tam gdzie ma być wylogowanie użytkownika, ten kod: - tam gdzie chcesz śledzić usera
- tam gdzie chcesz wyświetlić użytkowników
No ... w sumie napisałem Ci wszytko, powinno działać ![]() -------------------- Fotografia, projektowanie stron WWW | web-coding.pl - HTML 5 i CSS 3 - już w krótce ;)
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
no tak, juz zrobiłem zgodnie z 1 wskazówką.
Mam funkcję która odpala się zaraz po nagłówku strony i jeśli jest ustalone session[id] to w tabeli kont userów updatuje wartość pola online. Dzięki za wskazówki -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
no tak, juz zrobiłem zgodnie z 1 wskazówką. Mam funkcję która odpala się zaraz po nagłówku strony i jeśli jest ustalone session[id] to w tabeli kont userów updatuje wartość pola online. Dzięki za wskazówki Pewnie dalej czujesz niedosyt i szukasz czegoś takiego. Po wywołaniu zdarzenia otworzyć nowe okno przegladarki, które powiadomi php/sql, że user wyszedł. No i nie trzeba będzie za każdym razem robić tego nieszczęsnego update`u bazy. Niestety to nie zawsze zadziała. Przeglądarki blokują okienka, javascript nie wszędzie jest włączony. Nie można polegać na takich rozwiązaniach więc nie masz co szukać lepszego ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:34 |