Dziś chciałem zaprezentować prosty licznik pokazujący aktualna ilość gości online na stronie.
Licznik działa na PHP/MySQL i jest zaprezentowany w funkcji.
Dodajemy tabelkę do naszej bazy danych:
2
3
4
5
`ip` varchar(15) NOT NULL default '',
`datetime` time NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`ip`)
) TYPE=MyISAM;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function goscieOnline(){
/*
tutaj jakieś połączenie z Twoja baza danych
mysql_connect();
mysql_select_db();
Gdy juz połączenie mamy ustawione deklarujemy zmienne:
*/
// byly czas
$bylo = date('Y-m-d H:i:s', time()-5*60); // 5 min
// Aktualny czas
$teraz = date('Y-m-d H:i:s', time()); // 5 min
// adres ip
$ip = $_SERVER['REMOTE_ADDR'];
// Usuwamy wszystkie wpisy starsze niz 5 minut
$sql = "DELETE FROM `goscie_online` WHERE `date`<'$bylo'";
mysql_query($sql) or die('<br /><br />ZAPYTANIE: '.$sql.'BŁĄD: '.mysql_error());
// Dodajemy nowe ip i godzine wejscia na strone
$sql = "INSERT INTO `goscie_online` (ip,date) VALUES('$ip','$teraz') ON DUPLICATE KEY UPDATE ip=VALUES(ip), date='$teraz'"; // Pomoc Nospora
mysql_query($sql) or die('<br /><br />ZAPYTANIE: '.$sql.'BŁĄD: '.mysql_error());
// liczba online w ciagu 5 minut
$sql = "SELECT COUNT(*) FROM `goscie_online` WHERE `date`>'$bylo'";
$odp = mysql_query($sql) or die('<br /><br />ZAPYTANIE: '.$sql.'BŁĄD: '.mysql_error());
$row = mysql_fetch_array($odp);
$goscieOnline = $row[0];//pobranie liczby rekordów
//echo $goscieOnline;
return $goscieOnline;
}
?>
Mam nadzieje że może kiedyś komuś to się przyda.
Pozdrawiam Korey





