Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/SQL sesje] Jak za pomocą sesji spr kto jest zalogowany ?
Forum PHP.pl > Forum > Przedszkole
free
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
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.
free
Tak mam tabelke userów.
Właśnie czekam na trego typu pomysły :-)
W wolnym czasie zrobie jak mówisz:
  1. 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.
Prph
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.
free
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
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.
free
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?
  1. <?php
  2. $_SESSION['imie'];
  3. ?>
acztery
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
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
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).
free
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.