Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Skrypt pokazujacy ile uzytkownikow online:
Raven1122
post
Post #1





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Witam, mam taki skrypt, ktory przy logowaniu ustawia w bazie danych wartosc w tabeli 0 na 1, lecz nie bardzo wiem jak zrobicc by przy wylaczeniu przegladarki (bo nie kazdy uzywa wyloguj, tylko poprostu zamyka przegladarke) zmienic ta wartosc spowrotem na 0. Jakies pomysly?
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Temat często wałkowany (IMG:style_emoticons/default/smile.gif)

Proponuje zamiast trzymać 0/1 to trzymać datę ostatniej aktywności użytkownika i wg niej okreslać czy user jest online czy nie...

Zakładasz sobie przykładowo, że traktujesz usera jako online gdy jego ostatnia aktywność nie jest starsza niż powiedzmy 3 minuty i tyle (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Raven1122
post
Post #3





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


czyi tworze tabelke "lastactibity" ktora aktualizuje skryptem ktory jest na kazdej podstronie i porownuje ja do terazniejszego czasu tak?
Go to the top of the page
+Quote Post
Majkelo23
post
Post #4





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


Dodajesz do tabeli z userami, pole:

  1. ALTER TABLE `tabela_z_userami` ADD `user_lastvisit` int(11) NOT NULL;


Potem na początku pliku .php, jeśli user jest zalogowany, dodajesz:

  1. $now = time();
  2. if ( $user_jest_zalogowany )
  3. {
  4. $sql = "UPDATE `tabela_z_userami` SET user_lastvisit = '".$now."'";
  5. $result = mysql_query($sql)
  6. or die("blad");
  7. }


Potem jak wyciągasz userów obecnie online to:

  1. $now = time();
  2. $sql = "SELECT * FROM `tabela_z_userami` WHERE user_lastvisit > ($now - 300)";
  3. $result = mysql_query($sql)
  4. or die("blad");
  5. while($row = mysql_fetch_assoc($result))
  6. {
  7. $obecnie_online .= $row['nick'];
  8. }
  9. $body = 'Obecnie online są: ' . $obecnie_online . '';
  10. echo $body;


Coś w tym stylu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 10:35