Guard ,
поверх каждой страницы помести такой код:
<?
session_start();
session_set_cookie_params("0");
$sid=session_id(); $time=time(); $past=time()-500;
$link=mysql_connect("хост_базы","логин_базы","пароль_базы");
mysql_select_db("название_базы");
mysql_query("DELETE FROM online WHERE last_time < \'$past\'");
$result=mysql_query("SELECT last_time FROM online WHERE sess_id=\'$sid\'");
$rows=mysql_num_rows($result);
if ($rows!="0") {
mysql_query("UPDATE online SET last_time=\'$time\' WHERE sess_id=\'$sid\'");
} else {
mysql_query("INSERT INTO online (last_time, sess_id, ip) VALUES (\'$time\', \'$sid\', \'$REMOTE_ADDR\',\'$PHP_SELF\')");
}
mysql_query("OPTIMIZE TABLE online");
mysql_close($link);
?>
Дамп таблицы online:
CREATE TABLE hunt_online (
hid int(11) NOT NULL auto_increment,
sess_id varchar(255) NOT NULL default \'\',
last_time varchar(255) NOT NULL default \'\',
ip varchar(12) NOT NULL default \'0\',
page varchar(255) NOT NULL default \'\',
PRIMARY KEY (hid)
) TYPE=MyISAM;
а с вызовом....сам подумай... есть идейка сделать на каждой странице вызов определенной ф-ции, которая при обращении к ней будет проверять поступал ли вызов в чат...
или же обновляемый фрейм...но это глупость...имхо...
вот...