Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Demaso

Problema com contador!

Recommended Posts

Galera, tô com o seguinte problema! Estou usando um contador na minha página e ele não registra visita por IP. Ou seja, se eu tiver na página e der um F5, ele vai adicionar 1 visita no contador. Quero que isso não aconteça...

 

Na página onde quero que ele "pegue" a visita e some é a prinpal, e eu adicionei o seguinte código nela:

PHP

[*]$area = "Principal";

[*]include "contador/contador.php";

 

A página contador.php tem o seguinte código:

PHP

[*]include "contador/conf.inc";

[*] //Se caso aparecer o erro: Notice: Undefined variable: area in ... ...\contador.php on line 11

[*] //Tire o comentário abaixo:

[*] //global $area;

[*] if((!defined($area)) && ($area=="")){

[*] $area = "Indefinidos";

[*]}

[*]//Define Formato Data

[*]$data=date('Y-m-d');

[*]$result = mysql_query("SELECT * FROM contador WHERE area='$area'",$conexion);

[*]$row = mysql_fetch_row($result);

[*]//Se Nao Existir o Nome da Área Na Base Ele Cria

[*] if ($row[0] != $area) {

[*] mysql_query("INSERT INTO contador (area, data, acessos) VALUES('$area','$data','1')",$conexion);

[*] }

[*]//Do contrário ele só faz a inclusão do contador

[*] else {

[*] $cont = $row[2];

[*] $contnew = $cont + 1;

[*] mysql_query("UPDATE contador SET data = '$data', acessos = '$contnew' WHERE area = '$area'",$conexion);

[*]}

 

 

Alguém sabe qual comando devo adicionar pra ele registrar a visita por IP ??

 

Abraços!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer o seguinte, você pode fazer o seu contador gravar um cookie na máquina do usuário com expiração no termino do dia.. dai quando o usuario entrar na página ou der um F% você verifica se o cookie existe ou naum.... Eu acho melhor isso dko por IP, que o IP você teria que gravar em um banco os IPs e dai verifica se akele IP jah existe e seu banco teria que ser apagado todos os dias os IPs... e tem mais um problema com o IP, se o povo estiver numa faculdade e mais gente estiver entrando no seu site, vai contar como 1 soh registro....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá certo, gostei da idéia do cookie... Mas eu não sei fazer isso... Tem como cê me mostrar como faz? Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria o cookie

setcookie ("TestCookie", $value,time()+3600);

 

TestCookie = Nome do cookie

 

$value = Valor do cookie

 

time()+3600 = Tempo para o cookie expira (em minutos), co caso ai expira em uma hora.

 

3600*24*365 - Expira em um anos (uma hora x 24 horas (um dia) x 365 dias)

 

Restringir acesso somente para quem tem o cookie

if ($_COOKIE["nomedocookie"]){

// Logado

}else{

// Impedido

}

 

Imprimindo o valor de um cookie na tela

Se a pessoa logar no sistema com usuario e senha, e o valor do cookie for o nome dela.

 

ex:

 

$nome = "Nícolas";

setcookie ("login", $nome,time()+3600);

 

echo $_COOKIE["login"]; // Imprime Nícolas na tela

 

Destruindo um cookie

Para apagar o cookie basta fazer a mesma coisa feita para criar mais usar um valor negativo igual ou superior ao utilizado para cria-lo

 

Destruido o cookie login

 

setcookie ("login", $nome,time()-3600);

 

Agora se coloco

 

echo $_COOKIE["login"]; // Não imprime nada

 

Flw ai cara espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí cara! Valeu pela resposta... Bom, tentei usar minha burra lógica aqui e não consegui... Bom, criei uma nova tabela:

 

CREATE TABLE `contador_cookie` (
 `area` varchar(60) NOT NULL default '0',
 `data` datetime NOT NULL default '0000-00-00 00:00:00',
 `acessos` int(11) NOT NULL default '0',
 PRIMARY KEY  (`area`)
) TYPE=MyISAM;

 

Aí na página do contador, coloquei o seguinte código:

 

PHP

[*]if ($_COOKIE["ContadorIPCI"]){

[*] //nada acontece

[*] }else{

[*] $cont = $row[2];

[*] $contnew = $cont + 1;

[*] mysql_query("UPDATE contador_cookie SET data = '$data', acessos = '$contnew'",$conexion);

[*]}

[*]setcookie ("ContadorIPCI", $value,time()+3600); //Cria o cookie

 

Mas ele não tá contando uma visita a cada uma hora como deveria e sim de "F5 em F5"... Você sabe o que que pode tá acontecendo?

 

Abraços... :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase isso, tenta assim

 

PHP

[*]if ($_COOKIE["ContadorIPCI"]){

[*]// Entra no site sem contagem

[*]}else{

[*]$dados = mysql_query("SELECT * FROM contador_cookie'",$conexion);

[*]$linha = mysql_fetch_row($dados);

[*]

[*]$valor = "Visitante";

[*]setcookie ("ContadorIPCI", $valor,time()+3600);

[*]

[*]$cont = $linha[3];

[*]$contnew = $cont + 1;

[*]

[*]$atualiza = mysql_query("UPDATE contador_cookie SET acessos = '$contnew'",$conexion);

[*]}

 

Ai cara, eu tirei o update data pq não tem string de data pra atualizar, qualquer coisa se adiciona ai da sua maneira, oq fiz ai foi fazer uma pesquisa no bd, criar o cookie e gravar as atualizações, tenta ai http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma ai, que id seria esse?? porque pra atualizar os dados precisa adicionar where id!!!!E pra pesquisar tb, pois ele não ta fazendo loop para pesquiar sem o where

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar aqui cara, sobre o que você disse, é que só coloquei aquela parte da página... A página toda ficou assim:

 

PHP

[*]include "contador/conf.inc";

[*] //Se caso aparecer o erro: Notice: Undefined variable: area in ... ...\contador.php on line 11

[*] //Tire o comentário abaixo:

[*] //global $area;

[*]//Define Formato Data

[*]$data=date('Y-m-d');

[*]$result = mysql_query("SELECT * FROM contador_cookie WHERE area='Principal'",$conexion);

[*]$row = mysql_fetch_row($result);

[*]//Se Nao Existir o Nome da Área Na Base Ele Cria

[*]if ($_COOKIE["ContadorIPCI"]){

[*] //nada acontece

[*] }else{

[*] $cont = $row[2];

[*] $contnew = $cont + 1;

[*] mysql_query("UPDATE contador_cookie SET data = '$data', acessos = '$contnew'",$conexion);

[*]}

[*]setcookie ("ContadorIPCI", $value,time()+3600); //Cria o cookie

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, parece que agora deu... Olha só o código como ficou e vê se tem algo errado:

 

PHP

[*]include "contador/conf.inc";

[*]if ($_COOKIE["ContadorIPCI"])

[*]// Entra no site sem contagem 

[*]}else

[*]$data=date('Y-m-d');

[*]$result = mysql_query("SELECT * FROM contador_cookie WHERE area='Principal'",$conexion);

[*]$row = mysql_fetch_row($result);

[*]

[*]$valor = "Visitante"

[*]setcookie ("ContadorIPCI", $valor,time()+3600); 

[*]

[*]$cont = $row[2];

[*]$contnew = $cont + 1;

[*]mysql_query("UPDATE contador_cookie SET data = '$data', acessos = '$contnew'",$conexion);

[*]}

 

Valeu!! Abração!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.