Criei isto como que uma actualização a um outro tutorial que postei há já algum tempo.
Podem vê-lo aqui
http://forum.maistrafego.pt/index.php?topic=3318Com este código é possível guardar os mesmos detalhes que no antigo tutorial, mas foram feitas algumas melhorias e adicionadas algumas funções, com especial destaque para a possibilidade de aceder as estatísticas numa página HTML.
Como recentemente alguem voltou a pedir uma coisa deste género, resolvi recriar o script e colocar aqui. Este é identico a um que fiz para o site de um amigo meu, mas com menos funcionalidades, que considerei como sendo desnecessárias.
Vamos precisar de 3 ficheiros:
registos.txt guardar.php mostrar.phpAtenção que é muito importante que sejam dadas permissões 777 ao ficheiro registos.txt para quem trabalha com sistemas Unix.Os 3 ficheiros tem de estar tambem no mesmo directório.
Primeiro o ficheiro que faz a contagem, nomeado
guardar.php:
<?php # GUARDAR.PHP
//////////////////////////////////////////////////////////////////////
// Estatísticas - Data, Hora, IP, Navegador e Origem do Visitante //
// * * * Elaborado por =IceBurn= * * * //
// * * * * * * * WWW.TENHAMEDO.NET * * * * * * * * //
//////////////////////////////////////////////////////////////////////
$Hora_Servidor = "+2"; /*Configurar conforme a hora do servidor*/
$acerto = time() + ($Hora_Servidor * 60 * 60);
$hora = date("H:i:s", $acerto);
$data = date("d-m-Y", $acerto);
if (!$_SERVER['HTTP_REFERER']) { $_SERVER['HTTP_REFERER'] = "Desconhecido"; }
$max = "10000"; /*Número máximo de registos que queremos guardar.*/
$registos = "registos.txt";
$linhas = @count(file($registos));
ignore_user_abort(false);
if ($linhas >= $max || !file_exists($registos))
$fp = @fopen($registos, "w+");
else
$fp = @fopen($registos, "a");
@flock ($fp, LOCK_EX);
@fwrite($fp, "$data**$hora**".$_SERVER['REMOTE_ADDR']."**".$_SERVER['HTTP_USER_AGENT']."**".$_SERVER['HTTP_REFERER']."\n");
@flock ($fp, LOCK_UN);
@fclose($fp);
ignore_user_abort(true);
?>
De seguida o ficheiro que mostra as estatísticas numa página HTML:
mostrar.php<?php # MOSTRAR.PHP
//////////////////////////////////////////////////////////////////////
// Estatísticas - Data, Hora, IP, Navegador e Origem do Visitante //
// * * * Elaborado por =IceBurn= * * * //
// * * * * * * * WWW.TENHAMEDO.NET * * * * * * * * //
//////////////////////////////////////////////////////////////////////
if (!file_exists("registos.txt"))
{exit("!! ERRO !! O ficheiro registos.txt não existe!");}
$registos = file("registos.txt");
$linha = @count($registos);
echo '<table width="100%" border="0" bgcolor="3366FF" align="center">';
echo '<tr>
<th><font color="white"> Data </font></th>
<th><font color="white"> Hora </font></th>
<th><font color="white"> IP </font></th>
<th><font color="white"> Navegador </font></th>
<th><font color="white"> Origem </th>
</tr>';
for ($i = $linha-1; $i >= 0; $i--) {
$resultado = @explode("**",$registos[$i]);
$resultado[4] = @eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
'<a target="_blank" href="\\1">\\1</a>',
$resultado[4]);
$resultado[4] = @eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
'\\1<a target="_blank" href="http://\\2">\\2</a>',
$resultado[4]);
echo "<tr>
<td align=\"center\" width=\"70\" bgcolor=\"#99FF33\">$resultado[0]</td>
<td align=\"center\" width=\"50\" bgcolor=\"#FFFF00\">$resultado[1]</td>
<td align=\"center\" width=\"200\" bgcolor=\"#99FFFC\">$resultado[2]</td>
<td width=\"350\" bgcolor=\"#CCFFFF\">$resultado[3]</td>
<td width=\"350\" bgcolor=\"#FFFFCC\"><font size=\"1\">".$resultado[4]."</font></td>
</tr>";
}
echo "</table>\n";
echo '<font size="2" color="grey">Elaborado por =IceBurn= (<a href="http://tenhamedo.net/">www.tenhamedo.net</a>)</font>';
?>
Agora, vamos supor que se pretende que isto funcione na página principal do site, para isso basta meter na vossa página index o seguinte:
<?php include ("guardar.php"); ?>
E pronto, que comecem as estatísticas. LoL
Depois para terem acesso aos resultados, basta acederem normalmente á página mostrar.php
Como sempre, espero que seja útil a alguem
Se tiverem dúvidas, perguntem.