Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/SQL sesje] Jak za pomocą sesji spr kto jest zalogowany ?
free
post 6.09.2006, 10:11:39
Post #1





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


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?
Go to the top of the page
+Quote Post
revyag
post 6.09.2006, 10:44:21
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


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.


--------------------
-------------

------
Go to the top of the page
+Quote Post
free
post 7.09.2006, 08:56:06
Post #3





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


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.
Go to the top of the page
+Quote Post
Prph
post 7.09.2006, 09:11:04
Post #4





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

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


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.
Go to the top of the page
+Quote Post
free
post 7.09.2006, 09:16:55
Post #5





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


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 ?
Go to the top of the page
+Quote Post
s_w_ir
post 7.09.2006, 09:21:31
Post #6





Grupa: Zarejestrowani
Postów: 315
Pomógł: 1
Dołączył: 6.08.2003
Skąd: Kielce

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


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.
Go to the top of the page
+Quote Post
free
post 7.09.2006, 09:34:45
Post #7





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


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. ?>
Go to the top of the page
+Quote Post
acztery
post 7.09.2006, 10:58:37
Post #8





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


zamiast 1 daj moze znacznik i wyswetlal ( licz ) wszystkich w jakims tam przedziale czasowym .
znacznik czasu sie zmiania przy kazdym za przeladowaniu strony
Go to the top of the page
+Quote Post
-Wieviór-
post 7.09.2006, 15:00:45
Post #9





Goście







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.
Go to the top of the page
+Quote Post
s_w_ir
post 7.09.2006, 19:24:07
Post #10





Grupa: Zarejestrowani
Postów: 315
Pomógł: 1
Dołączył: 6.08.2003
Skąd: Kielce

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


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).
Go to the top of the page
+Quote Post
free
post 7.09.2006, 20:44:13
Post #11





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


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 ?
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 22:23