И так, если понадобится на сайте показывать текущее количество online пользователей, это можно реализовать так. Создадим таблицу:
CREATE TABLE useronline (
timestamp int(15) DEFAULT ‘0’ NOT NULL,
ip varchar(40) NOT NULL,
file varchar(100) NOT NULL,
PRIMARY KEY (timestamp),
KEY ip (ip),
KEY file (file)
);
timestamp int(15) DEFAULT ‘0’ NOT NULL,
ip varchar(40) NOT NULL,
file varchar(100) NOT NULL,
PRIMARY KEY (timestamp),
KEY ip (ip),
KEY file (file)
);
а теперь перейдем к php скрипту:
<?php // Ваши настройки MySQL сервера $server = "xxx"; $db_user = "xxx"; $db_pass = "xxx"; $database = "xxx"; //Конектимся к базе $db = mysql_connect($server, $db_user,$db_pass); mysql_select_db($database,$db); $timeoutseconds = 300; //5 minutes $timestamp = time(); $timeout = $timestamp-$timeoutseconds; $insert = mysql_query("INSERT INTO useronline VALUES ('$timestamp','$REMOTE_ADDR','$PHP_SELF')",$db); if(!($insert)) { print "Useronline Insert Failed > "; } $delete = mysql_query("DELETE FROM useronline WHERE timestamp<$timeout",$db); if(!($delete)) { print "Useronline Delete Failed > "; } $result = mysql_query("SELECT DISTINCT ip FROM useronline WHERE file='$PHP_SELF'",$db); if(!($result)) { print "Useronline Select Error > "; } $user = mysql_num_rows($result); mysql_close(); // Вывод результатов if($user == 1) { print("$user user online\n"); } else { print("$user users online\n"); } ?>