Markim Markim  • 22.09.13 9:56

Contador de visitas e usuários online com PHP e MySQL Empty Contador de visitas e usuários online com PHP e MySQL 22.09.13 9:56

Encontrei um script em PHP utilizando banco de dados MySQL que faz a contagem de visitas no site e total de usuários online.
Você pode definir no script qual será o tempo (em minutos) de expiração da sessão do usuário no site quando inativo.

Tabelas Mysql:
Código:
CREATE TABLE contador (
  id int(11) NOT NULL AUTO_INCREMENT,
  visitas int(10) DEFAULT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE usuarios_online (
  id int(10) NOT NULL AUTO_INCREMENT,
  sessao text NOT NULL,
  tempo timestamp NOT NULL,
  ip varchar(15) NOT NULL,
  PRIMARY KEY (id)
);
Script PHP:
Código:
<?php


session_start();


$expira_em  = 5; //DEFINE EM MINUTOS A EXPIRAÇÃO DO ACESSO DO USUARIO


$sessao     = session_id();


$ip         = $_SERVER['REMOTE_ADDR'];


$tempo_on   = date('Y-m-d H:i:s');


$tempo_fim  = date('Y-m-d H:i:s',mktime(date('H'),date('i') - $expira_em,date('s'),date('m'),date('d'),date('Y')));





$conexao = mysql_connect('localhost','root','') or die("Erro ao conectar");


$db = mysql_select_db('contador') or die("Erro ao selecionar o DB");





//EXCLUI USUARIOS QUE ESTEJAM INATIVOS NO TEMPO DEFINIDO COMO EXPIRAÇÃO


mysql_query("DELETE FROM usuarios_online WHERE tempo <= '$tempo_fim'");





//SELECIONA USUARIO


$sql = mysql_query("SELECT id FROM usuarios_online WHERE sessao='$sessao'");


$total = mysql_num_rows($sql);


if($total){


 mysql_query("UPDATE usuarios_online SET tempo='$tempo_on' WHERE sessao='$sessao'");


}else{


 mysql_query("INSERT INTO usuarios_online(sessao,tempo,ip)VALUES('$sessao','$tempo_on','$ip')");


 $sql_c = mysql_query("SELECT id FROM contador");


 $total_c = mysql_num_rows($sql_c);


 if($total_c){


   mysql_query("UPDATE contador SET visitas=visitas+1");


 }else{


   mysql_query("INSERT INTO contador(visitas)VALUES(1)");


 }


}


//ONLINES


$sql_o = mysql_query("SELECT id FROM usuarios_online");


$total_online = mysql_num_rows($sql_o);


//VISITAS


$sql_v = mysql_query("SELECT visitas FROM contador LIMIT 1");


$d_v = mysql_fetch_object($sql_v);


$total_visitas = $d_v->visitas;





echo "Total de Visitas: ".$total_visitas."<br>";


echo "Online Agora: ".$total_online;


?>


No código de contador de usuários online usa SESSION em vez do IP do usuário para computar os acessos, pois podem haver mais de um usuário na mesma rede (com mesmo IP externo) acessando o site e não seria justo perder essa contagem. ;)

iLucas iLucas  • 22.10.13 20:35

avatar djhaymatheus  • 06.06.14 7:25

Contador de visitas e usuários online com PHP e MySQL Empty Re: Contador de visitas e usuários online com PHP e MySQL 06.06.14 7:25

Gostei Coloquei um sttyle Css e Ficou Show !
Permissões neste sub-fórum
Não podes responder a tópicos

BH Servers

Recomendamos a BH Servers com proteção DDOS gratuita em Cloud Server de alta performance. Entrega imediata.