Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyświetlanie użytkowników aktualnie zalogowanych
henio
post
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Zastanawiam się obecnie nad skryptem, który wyświetli mi zalogowanych użytkowników.
Mam tabele: forum_uzytkownicy, gdzie przechowuje dane o userach. Myślałem, że mogę to rozwiązać przez utworzenie tabeli zalogowani, gdzie dodawałbym nicki przy logowaniu a usuwał przy wylogowywaniu. Jednak taki sposób nie jest dobry, ponieważ można opuścić stronę bez wylogowywania. Pytam się, więc czy ktoś ma jakiś pomysł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Lion_87
post
Post #2





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Zrób dodatkową kolumne np: online
w momencie gdy ktoś sie zaloguje to bedzie ona zmieniona na tak
a gdy sie ktos wyloguje to na nie

a potem już tylko zapytanie
select count(online) from baza where online="tak"

Ten post edytował Lion_87 22.12.2007, 20:15:09
Go to the top of the page
+Quote Post
henio
post
Post #3





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Cytat(Lion_87 @ 22.12.2007, 20:14:48 ) *
Zrób dodatkową kolumne np: online
w momencie gdy ktoś sie zaloguje to bedzie ona zmieniona na tak
a gdy sie ktos wyloguje to na nie

a potem już tylko zapytanie
select count(online) from baza where online="tak"

Już o tym pisałem, że to nie jest do konca dobry pomysł, bo można wyjsc z strony bez wylogowania

Cytat(JaRoPHP @ 22.12.2007, 20:19:38 ) *

Dzięki za link, z pewnością skorzystam z tego sposobu.

Utworzyłem plik online.php, ktory potem includowany do pliku index.php

  1. <?php
  2. define ('TIMEOUT', 5);
  3. $ostatnio_online = time();
  4. $zapytaj = mysqli_query($mysql, "SELECT * FROM forum_online WHERE nick == '".$_SESSION['user']."'");
  5.  
  6. if($zapytaj == false)
  7. {
  8. $zapytaj1 = mysqli_query($mysql, "INSERT INTO forum_online (nick, ostatnio_online) VALUES ('".$_SESSION['user']."', '".$ostatnio_online."')");
  9. }
  10. else
  11. {
  12. $zapytaj2 = mysqli_query($mysql, "UPDATE forum_online SET nick = '".$_SESSION['user']."', ostatnio_online = '".$ostatnio_online."'");
  13. }
  14.  
  15. $aktywnosc = time()-(60*60*TIMEOUT);
  16. $wywal_nieaktywnego = mysqli_query($mysql, "DELETE FROM forum_online WHERE ostatnio_online < $aktywnosc");
  17.  
  18. $zapytaj_o_online = mysqli_query($mysql, "SELECT * FROM forum_online ORDER by ostatnio_online");
  19.  
  20. if(count($zapytaj_o_online) == 0)
  21. {
  22. echo "Niestety nie ma nikogo online\n";
  23. }
  24. else
  25. {
  26. echo "<table>\n";
  27. echo "<th>Nick</th><th>Ostatnio online</th>\n";
  28. while($zapytaj_o_online1 = mysqli_fetch_assoc($zapytaj_o_online)) 
  29. {
  30. echo "<tr><td>".$zapytaj_o_online1['nick']."</td>";
  31. echo "<td>".date('g:i:s', $zapytaj_o_online1['ostatnio_online'])."</td></tr>\n";
  32. }
  33. echo "</table>\n";
  34. }
  35. ?>

Przy odświeżaniu zamiast zmieniać się data ostatniego bycia online dodaje mi się kolejny. Np:
Henio 8:58:09
Henio 8:59:21
Henio 8:59:30
Henio 8:59:35
Henio 9:01:48

Już ten błąd rozwiązałem
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 18:14