Na stronie mam statystyke. Podaje ile userow jest zarejestrowanych, ile komentarzy itd. Stosuje sesje przy logowaniu i korzystaniu z witryny, jak za ich pomoca spr i wyswietlic kto jest aktualnie on-linena stronie?
revyag
6.09.2006, 10:44:21
Rozumiem że masz tabelę z użytkownikami. Dodaj do tabeli pole online. Jak user się zaloguje to ustawiasz je na 1 a jak wyloguje to na zero. Potem zapytanie sprawdasz czy ustawione jest pole online i wyświetlasz nazwę usera.
Tak mam tabelke userów.
Właśnie czekam na trego typu pomysły :-)
W wolnym czasie zrobie jak mówisz:
SELECT imie FROM users WHERE online = 1 ";
I przy kazdym logowaniu skorzystam z UPDATE pola online w tabeli users.
Tylko zastanawiam sie czy to bedzie miarodajne. TZN. user zaloguje sie ale nie dokona wylogowania fizycznego na stronie /po prostu zamknie przegladarke/ i nadal bedzie w polu online mial wartosc 1.
A chce by to bylo oparte o sesje. Przy zamknieciu przegladarki sesja znika i tę cechę chciałbym wykorzystac.
Witam,
Wcale ze sesja nie znika po zamknieciu przegladarki. To zalezy od ustawien ciasteczka z sesja.
A czegos takiego nie zrobisz. Jedyne rozwiazanie to ustawienie czasu sesji bez odswiezenia strony na powiedzmy 10 minut. Ale co, jzeli pani Jadzia zaloguje sie do systemu firmy, kliknie dodaj raport i napisanie go zajmie jej 15 minut? Przeniesie ja do logowania i raport szlag trafi.
Pomin to.
Adrian.
W praktyce wygląda to tak, że uzytkownik opuszcza strone i nie naciska wyloguj sie wiec skrypt nie zmieni mu w bazie pola ONLINE na 0 i bedzie cały czas widoczny jako zalogowany. Jak jest to stosowane na profesjonalnych skryptach ze czlowiek zamknie przegladarke i przez skrypt jest odbierany jako wylogowany ?
s_w_ir
7.09.2006, 09:21:31
Tutaj sprawdzane jest czy w ciągu ostatnich 15 minutach user wykonał jakąś akcje(kliknięcie linku). Jeśli nie to nia ma go na liście, ale wciąż jest zalogowany.
Jak czegos takiego dokonać ?
Nie chodzi mi o gotowy skrypt, tylko o idee. Bo robie to pierwszy raz. Jak spr czy user kliknął coś ?
Przy logowaniu startuje sesja ze zmiennymi m.in. z nawa usera. II pyt czy jest możliwość by wyswietlic liste sesji?
<?php
$_SESSION['imie'];
?>
acztery
7.09.2006, 10:58:37
zamiast 1 daj moze znacznik i wyswetlal ( licz ) wszystkich w jakims tam przedziale czasowym .
znacznik czasu sie zmiania przy kazdym za przeladowaniu strony
Wieviór
7.09.2006, 15:00:45
Możesz po prostu zrobić w tabeli z users dwa pola: user_online, user_online_time.
Na każdej stronie na początku dajesz skrypt który robi update user_online_time i zmienia wartość pola user_online na 1.
Przy wyświetlaniu kto(lub ile osób) jest online, najpierw robisz skrypt, który czyta userów, sprawdza gdzie user_online jest 1. Porównuje user_online_time z aktualnym czasem serwera, jeżeli jest powiedzmy 15 minut to zmienia user_online na 0.
Wyświetlasz listę userów, u których wciąż user_online jest 1.
s_w_ir
7.09.2006, 19:24:07
Ja bym też stworzył nową teblę, albo dodał pole ostatnia akcja(nie wiem co optymalniejsze), ale jakkolwiek wpisywał tam date godzine ostatniej wizyty i pobierał tylko WHERE czas różni się od obecnego o mniej niż 15 minut(np).
Czyli powstałoby mi coś na wzór forum, czyli można by wyświetlic co dany user robi. Troche to sie robi skomplikowane. Czy nie ma sposobu by wyswietlic sesje userow ktore wkoncu są przechowywane na serwerze ?
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.