PHP: Sistema de usuários online

Muita pessoas já me perguntaram, “Como eu faço um sisteminha de usuários online?” ou então “Aonde eu encontro um sistema de usuário online?”.
Ai eu resolvi postar aqui o sistema!

<? // faz a conexao com o banco de dados $host = "localhost"; $user = "usuario"; $pass = "senha"; $db = "banco_de_dados"; $connection = @mysql_connect($host, $user, $pass) or die("Unable to connect to database!"); @mysql_select_db($db, $connection) or die("Unable to select database!"); ////////////////////// $ts = time(); $to = time()-60; $sql = @mysql_query("SELECT count(*) FROM usuarios_online WHERE ip="'$REMOTE_ADDR'""); $sqlt = @mysql_result($sql,0,0); if ($sqlt) @mysql_query("UPDATE usuarios_online SET timestamp="'$ts',local='$PHP_SELF',nick='$admin_nick'" WHERE ip="'$REMOTE_ADDR'""); else @mysql_query("INSERT INTO usuarios_online (timestamp,ip,local,nick) VALUES ('$ts','$REMOTE_ADDR','$PHP_SELF','$admin_nick')"); $sql = @mysql_query("DELETE FROM usuarios_online WHERE timestamp<$to"); $sql = @mysql_query("SELECT ip FROM usuarios_online"); $UOL = @mysql_num_rows($sql); $UOLS = ($UOL <= 1) ? "" : "s"; # ja esta com a verificacao pra coloca 's' se for maior que 1 usuario online echo "$UOL usuário${UOLS} online"; ?> 

Agora salve o código abaixo como tabela.sql e rode-o no seu banco de dados.

CREATE TABLE `usuarios_online` ( `timestamp` int(20) NOT NULL default '0', `ip` varchar(25) NOT NULL default '', `local` varchar(70) default NULL, `nick` varchar(30) NOT NULL default '' ) TYPE="MyISAM;"