Ir para conteúdo

POWERED BY:

Arquivado

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

Super_Zica_Man

Contador de acessos em PHP

Recommended Posts

Vi o código deste tópico:

http://forum.imasters.com.br/lofiversi...hp/t193383.html

Mas como vi que a data era antioga decidi criar aqui um novo post.

 

Criei um arquivo php

 

conta.php

<?php
@session_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,"", ".");
?>

E no meio da index onde eu queria que ele aparacesse coloquei

 

<?php

include("conta.php");

setcookie('var','entrou');

?>

 

Mas da o seguinte erro

 

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Testes\index.php:17) in C:\wamp\www\Testes\index.php on line 69

 

Mas o contador atualiza normal

 

se eu tiro a linha

setcookie('var','entrou');

 

ele não da o erro, mas quando clico no atualizar ele aumenta o numero de visitas.

 

O erro acho que é por não ter o cookie ali, mas como a página os links tao por query string cada clique e uma visita aumentada, dai queria fazer para só quando abrir um navegador novo atualizar.Mas não tenho muito conhecimento no php se alguem puder ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inclua o código no início, antes de qualquer saída ao browser. Leia a referência da função setcookie() para entender melhor: http://br.php.net/manual/pt_BR/function.setcookie.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retire os "@" e testa pra ver o erro que vai dar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se coloca em cima da esses erros:

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\Ares\index.php:1) in C:\wamp\www\Ares\conta.php on line 2

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\Ares\index.php:1) in C:\wamp\www\Ares\conta.php on line 2

10

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Ares\index.php:1) in C:\wamp\www\Ares\index.php on line 3

Se eu coloco no meio do código também mesmo erro:

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\Ares\index.php:5) in C:\wamp\www\Ares\conta.php on line 2

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\Ares\index.php:5) in C:\wamp\www\Ares\conta.php on line 2

11

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Ares\index.php:5) in C:\wamp\www\Ares\index.php on line 64

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí galera, beleza?

 

Super Zica... posta seu código pra nós analizarmos...

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, estive meio afastado do pc rsrs

 

Mas consegui fazer isso rodar localmente de boa, mas quando coloco no servidor não dá erro, mas ele não atualiza, ele dava um erro que não tinha permissão daí no ftp dei permissão pra tudo, só que ele ele fica sempre no 0, não sei o que pode ser.

 

O código tá assim agora:

 

conta.php

 

<?php
@session_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 "Nosso site já foi visitado por ";
echo $visitas= number_format("$visitas",0,"", ".");
echo " pessoas.";
?>

 

e no index.php

Ele está no meio do arquivo, porque isso é onde ele irá exibi-lo na tela, se eu colocar essa instrução no topo da página o contador vai aparecer em cima da página e eu quero embaixo do menu, então coloquei o código abaixo do menu.Não dá mais erro, mas não atualiza :wacko:

 

<?php
include("conta.php");
setcookie('var','entrou');
?>

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.