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:<?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";} ?>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.