Contador simples de usuários online, guarda o IP do usuário e vai atualizando o timeout, até remover o usuário de vez do banco de dados dos ativos.
Primeiro a tabela do banco de dados:
#
# Nome da Tabela 'useronline'
#
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));
Agora o script em si:
<?php
//Efetua a conexão
mysql_connect("localhost","xxx","xxx");
mysql_select_db(xxx);
//Tempo em segundos que irá apagar os ips inativos
$timeoutseconds = 300;
$timestamp=time();
$timeout=$timestamp-$timeoutseconds;
//Pega o ip
$ip = $_SERVER['REMOTE_ADDR'];
//Pega a o url da página que o uuário entro
$self = $_SERVER['PHP_SELF'];
//Verifica se o ip do usuário já se encontra
$verif = mysql_query ("SELECT ip FROM useronline WHERE ip = '$ip'");
$evo = mysql_num_rows($verif);
//Se for encontrado, faz a atualização do url e do segundos que a pessoa entrou
if ($evo > "0"){
mysql_query("UPDATE useronline SET file='$self',timestamp='$timestamp' WHERE ip='$ip'") or die("Database UPDATE Error");
//Caso não sejá encontrado ele insere o ip a url e o tempo
} else {
mysql_query("INSERT INTO useronline VALUES ('$timestamp','$ip','$self')") or die("Database INSERT Error");
}
//Deleta os ips que já passaram dos 300 segundos
mysql_query("DELETE FROM useronline WHERE timestamp<$timeout") or die("Database DELETE Error");
$result=mysql_query("SELECT DISTINCT ip FROM useronline WHERE file='$self'") or die("Database SELECT Error");
//Exibe o resultado
$user =mysql_num_rows($result);
if ($user==1) {echo"$user Total on-line";} else {echo"$user Total on-line";}
?>
Pergunta
ESerra
Script postado por Vampyro
Contador de usuários online baseado no IP
Contador simples de usuários online, guarda o IP do usuário e vai atualizando o timeout, até remover o usuário de vez do banco de dados dos ativos.
Primeiro a tabela do banco de dados:
Agora o script em si:Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.