|
||
|
|
| Conheça o Plugfeed | » Início » Programação » PHP » Contador de visitas (MySQL) --> |
|
Avaliação:
![]() ![]() ![]() ![]() | Publicado em: 17/07/2007Contador de visitas (MySQL)
Eduardo Stuart Cursando S.I. , trabalha como programador e webdesigner.
Contador de visitas (MySQL)
Meu primeiro artigo aqui no plugmasters, espero que ajude alguem :) O que vamos fazer? Um simples contador de visitas que utiliza MySQL. Como funciona? O sistema pega a data atual e o ip do visitante, após pegar esses dados ele verifica se os mesmo ja forma inseridos na tabela. (Verifica a data e o ip / Compara data atual + ip visitante com todos os registros da tabela) - Criei uma classe chamada "visita", nela possui as funções: visita(); Funciona como construtor, pega o ip do visitante e a data atual e armazena nas variaveis $ip e $data; conectar(); Conexão com o banco verificaVisitante(); Essa função faz as comparações, verifica se ja visitou. Caso não tenha visitado, insere novo registro. imprime(); Seleciona todos os registros da tabela e imprime na tela A tabela: CREATE TABLE `visitas` ( `id` INT(50) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `ip` VARCHAR(11) NOT NULL, `data` VARCHAR(10) DEFAULT '00/00/0000' NOT NULL ) TYPE = MYISAM; O código: <?php /* * contador de visitas * @Date: 17-07-07 * @Filename: contador.class.php **/ class visita { /* * variaveis **/ //Dados necessarios para verificacao de visitantes var $ip; //armazena o ip do usuario var $data; //armazena a data atual //Dados necessarios para conexao com db var $hostdb = "localhost"; var $userdb = "root"; var $passdb = ""; var $namedb = "banco"; //Nome da tabela var $tabVisitas = "visitas"; /* * construtor **/ function visita($ip) { //armazena na variavel 'ip' o ip do visitante atual $this->ip=$ip; //Pega a data atual $this->data=date("d/m/Y"); } /* * conexao com banco **/ function conectar() { $link= mysql_connect($this->hostdb,$this->userdb,$this->passdb)or die(mysql_error()); mysql_select_db($this->namedb,$link)or die(mysql_error()); } /* * verifica se o usuario ja visitou **/ function verificaVisitante() { //Chama a funcao de conexao com db $this->conectar(); /* Seleciona por ip e data */ $sql = mysql_query("SELECT ip,data FROM ".$this->tabVisitas." WHERE ip='".$this->ip."' AND data='".$this->data."'")or die(mysql_error()); /* Verifica se a selecao feita existe, caso nao exista insere novo */ if(!mysql_num_rows($sql)>0) $insereVisita = mysql_query("INSERT INTO ".$this->tabVisitas." (id,ip,data) VALUES ('','".$this->ip."','".$this->data."')"); //else print("Ja visitou"); } /* * imprime numero de visitas **/ function imprime() { //Chama conexao; $this->conectar(); //Seleciona todos $sql = mysql_query("SELECT * FROM ".$this->tabVisitas); //Conta quantos foram selecionados $total= mysql_num_rows($sql); //Imprime numero de visitas (registros na tabela) print("Visitas: ".$total); } } //'Chama' a classe visita e ja pega o ip do visitante $visita = new visita($_SERVER['REMOTE_ADDR']); //Chama a funcao verificaVisitante(); //Ela verifica se por ip e data se o usuario ja visitou $visita->verificaVisitante(); //Imprime o total de visitas (total de registros na tabela) $visita->imprime(); ?> Está bem comentado, acho que não preciso dizer mais nada... Caso tenha alguma duvida é só comentar ;) ou entrar em contato eduardo@eduardostuart.com Bom uso! :) http://blog.eduardostuart.com | http://www.eduardostuart.com Arquivos anexos ao artigo
Artigos relacionados
Este artigo é a parte 1 de 2 da seguinte série:
Rikkz <rikz.top@hotmail.com>
Tu é bom msm em rs..
Teus scripts são manerinhus.. Se tiver msn me add ae queria trocar umas idéais ctg... rikz.top@hotmail.com =D ![]() ![]() ![]() ![]() ![]() Júlio Marques <alegria.virtual@hotmail.com>
Eu gostei da matéria, peguei o código, mais não entendi muito bem como é que faz o contador.
![]() ![]() ![]() ![]() ![]() Mateus <mateus_g1@yahoo.com.br>
Muito bom!!! Aprendi a fezer um contador com essa matéria!
![]() ![]() ![]() ![]() ![]() celso <topdecotes@hotmail.com>
e ai kamarada queria uam ajuda como cloko o contador no frontpage?
nao consiqui colok add meu msn cj_paulistas@hotmail.com se n for comodo ..pq eu nao consiqui clok o contador na minha pagina ![]() ![]() ![]() ![]() ![]() Jason Minetto <contato@solucaohost.com.br>
Muito bom, porém na hora de criar a tabela visitas no mysql, no IP ao invez de colocar VARCHAR(11), cria ele como VARCHAR(15), pq tem ips maiores, e ele conta os pontos :) - só uma sugestão pra funcionar a parte que grava o IP e nao deixa adicionar mais uma vez no contador, fica bem mais firme pra saber realmente quantas pessoas entraram... abraço
![]() ![]() ![]() ![]() ![]() Farley <farleyx@gmail.com>
Cara é o que eu to precisando,
instalei mas não consigo fazer a conecção com mysql. Criei um bd chamado banco e usuario root preciso de fazer mais alguma coisa no mysql ? ![]() ![]() ![]() ![]() ![]() Gabriel <gabriel.sobrinho@gmail.com>
//armazena na variavel 'ip' o ip do visitante atual
this->ip=ip; Oq ser isso? Onde você definiu a variável ip? Fora isso tá ok... Mas pode melhorar! ![]() ![]() ![]() ![]() ![]() Eliandro Baldo <eliandrobaldo@hotmail.com>
parabens, funcionou q uma belaza. estava atras d um codigo assim faz tempo, obrigado
![]() ![]() ![]() ![]() ![]() Rodrigo <digaumsmile@gmail.com>
Cara.. parabéns... muito show este tuto. Mas tem que fazer como o Jason disse... poe varchar 15 senão não funciona direito... do resto, SHOW!
![]() ![]() ![]() ![]() ![]() cleiton <cmatiazi@gmail.comn>
esse arquivo foi otimo mais ñ ajudou em nda
![]() ![]() ![]() ![]() ![]() Fabiano <fabiano.wise@hotmail.com>
q loko cara me add no msn ai...
sei um pouco de actions tbm... ![]() ![]() ![]() ![]() ![]() Vinicius Oliveira <voc2009@hotmail.com>
Amigo, usei o seu script em um website de cliente e funcionou perfeitamente. Só há um pequeno detalhe: Ele não está barrando o IP, então eu configurei meu banco de dados a tabela IP como UNIQUE, só assim ele contou visita única por IP... deixo essa dica para outras pessoas que usarem seu script, também colocarem no banco de dados o atributo UNIQUE para a tabela IP. Espero que isso ajude pelo menos por enquanto, até encontrar onde ta o erro do barramento. Abraços e parabéns!
![]() ![]() ![]() ![]() ![]() ![]() |
|
![]() |
|
|