Jump to content


Photo

Contador De Visitas


  • Faça o login para participar
6 replies to this topic

#1 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 27/05/2009, 13:24

Oiee

Bom eu to estudando PHP e tô com algumas dúvidas.....eu copiei o seguinte código de um livro:

<?phpsession_start();$jaVisitou = $_SESSION["jaVisitou"];$linha=file("contador.txt");if ($jaVisitou){$visitas = $linha[0];}else{$visitas = $linha[0];$visitas += 1;$cf=fopen("contador.txt","w");fputs($cf,"$visitas");fclose($cf);$_SESSION["jaVisitou"] = true;}echo $visitas= number_format("$visitas",0,"", ".");?>


Porém toda vez que dou f5 ou clico em atualizar do navegador o número de acessos aumenta.......quero que esse número aumente somente qnd a pessoa fechar e abrir o navegador novamente......
Estou tentando agora por IP......+ ainda não saiu muita coisa.....

Espero que vcs me ajudem...

#2 execao

execao

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 27/05/2009, 13:53

tenta trocar$_SESSION["jaVisitou"] = true; por

$jaVisitou=true;

ou setar ela no inicio pra algum valor.

#3 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 27/05/2009, 13:57

tenta trocar$_SESSION["jaVisitou"] = true; por

$jaVisitou=true;

ou setar ela no inicio pra algum valor.





Olá execao

Fiz oq vc tinha me sugerido porém não deu certo.......continua aumentando o numeros de acessos..... :(
Me ajudem
Valew......

#4 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 27/05/2009, 14:06

Isso é um contador de acessos ou ver quantas pessoas estão on-line?!

Se for contador mesmo, o que você pode fazer é captar o IP da pessoa, e estipular um prazo para que esse IP seja válido (não cadastrar 2x caso dê f5 em um prazo de 24hrs por ex)

Então:

1) Capturar o IP e jogá-lo em uma variavel
2) Se o IP já foi cadastrado nas ultimas 24h
2.1) Ele não cadastra novamente
2.2) Senão ele cadastra
3) Depois disso, gravar no banco, de preferencia com a data/hora do acesso!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#5 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 27/05/2009, 14:20

Isso é um contador de acessos ou ver quantas pessoas estão on-line?!

Se for contador mesmo, o que você pode fazer é captar o IP da pessoa, e estipular um prazo para que esse IP seja válido (não cadastrar 2x caso dê f5 em um prazo de 24hrs por ex)

Então:

1) Capturar o IP e jogá-lo em uma variavel
2) Se o IP já foi cadastrado nas ultimas 24h
2.1) Ele não cadastra novamente
2.2) Senão ele cadastra
3) Depois disso, gravar no banco, de preferencia com a data/hora do acesso!



Então isso é um contador de acessos.....pra ver qnts pessoas estão online eu consegui fazer......esta funcionando

Estou tentando usar esse aqui que é por IP, porém não quero utilizar um banco de dados pra gravar

Veja:


<?phpclass visitas {        public $num_visitas;    public function __construct (){                $ip = getenv('REMOTE_ADDR');                $existe = 0;                $arquivoVi = "visitas.txt";                $arquivo = fopen($arquivoVi,"a");                $file = file($arquivoVi);               $total = count($file);        for ($i=0;$i<$total;$i++){            // Se existir a variavel $existe terá o valor 1                            if ($file[$i] == "$ip") $existe = 1;            }            if ($existe == 0) fwrite ($arquivo,$ip . '');        fclose($arquivo);                $this->num_visitas = count(file($arquivoVi));    }}?>


#6 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 27/05/2009, 15:43

Nana, use CODEBOX nos códigos, por favor!

bom, sem guardar essas informações em algum lugar, não tem como fazer essas comparações! Pelo que parece vc está gravando em arquivo, mas em arquivo talvez seja mais chato de manipular do que em banco de dados!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#7 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 29/05/2009, 08:00

Nana, use CODEBOX nos códigos, por favor!

bom, sem guardar essas informações em algum lugar, não tem como fazer essas comparações! Pelo que parece vc está gravando em arquivo, mas em arquivo talvez seja mais chato de manipular do que em banco de dados!



Ok....desculpa......eu sou nova em forum......nunca tinha deixado pergunta em nenhum desses.....+ vou me adaptar.... ;)

Então me sugeriram fazer o seguinte no 1º código que enviei pra vcs:
$_SESSION["jaVisitou"] = "true" if(!$_SESSION["jaVisitou"]) {  $_SESSION["jaVisitou"] = true;  // código para gravar +1 no contador.txt}


Porém não sei como proceder.....eu to começando agora.... :(

me ajudem pessoal......

Please......alguém pode me ajudar com esse contador......please :(




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq