Fazendo Uso de Estatísticas em PHP PDF Imprimir E-mail
Avaliação do Usuário: / 0
PiorMelhor 
Artigos - Código
Escrito por Jeferson   
Qua, 02 de Julho de 2008 15:26
Fazendo uso de estatísticas num site é uma coisa muito útil para se fazer um foco e planejamento do conteúdo do mesmo. Você pode ver cada clique de cada visitante, a data da visita, e quanto segundos o usuário esteve em seu site. Neste artigo será mostrado como armazenar as estatísticas num banco de dados MySQL, e mostrar as estatísticas numa tabela HTML.

Bom! Vamos iniciar com a parte do Banco de Dados. Nós precisaremos somente de uma tabela que armazenará cada clique de cada visitante. O nome da tabela será “ hits ”. O que nós armazenaremos nela?


  1. O hostname é muito importante para identificar o cliente. PHP nos dá o endereço IP que pode ser convertido com a função gethostbyaddr( ).

  2. O tempo de visita pode ser facilmente armazenado usando a função NOW( ) do MySQL.

  3. A página visitada deve ser armazenada. Em muitos casos, você deve armazenar a URL da página visitada e o título HTML em dois campos separados, como por exemplo URL e Título, tal que você seja capaz de ver seus sites mais visitados simplesmente por pesquisar através das listas dos seus títulos.


Agora iremos escrever o pedaço de código que salvará os dados. Ele será chamado no início da página. Para salvar os pedidos de URL no Banco de Dados, você pode usar $_SERVER[' PHP_SELF '] que dá a você a URL sem o nome do domínio ou $_SERVER['QUERY_STRING'] que dá a você os parâmetros da URL depois do ponto de interrogação.


Obs: $_SERVER['PHP_SELF'] não contém a string de consulta, somente o caminho relacionado ao server root e o nome do arquivo. Por exemplo, se você chama http://www.mydomain.com/folder1/personal/main.php?id=56 entao PHP_SELF é /folder1/personal/main.php.


O $_SERVER['QUERY_STRING'] pode ser especialmente útil se você usa somente um php para todas as funções. Por exemplo, você chama "/index.php?op=forum&topicid=768" se você gosta de mostrar um dado tópico de forum ou para mostrar artigos /index.php?op=articles&id=25. Usando QUERY_STRING, você pegará "op=articles&id=25" o que será suficiente para identificar o pedido de página.

Para o nosso exemplo usaremos o arquivo header.php para mostrar a tag <title></title>. Para conhecermos o título do HTML iremos definir uma constante PHP chamada 'TITLE'. Neste exemplo definiremos a constante no arquivo index.php, antes da declaração “include ( 'header.php' )”.


// mostrando um tópico usando dados fornecidos
define('TITLE',"Adam's forum > Topic: $topicname");
include
('header.php')
// aqui vem a parte principal

Agora com o arquivo header.php incluído podemos salvar a constante TITLE. Aqui a consulta salvará os dados. Coloque o próximo pedaço de código no início do arquivo header.php .


$q ='insert into hits(Host, Site, Title, Date) values
("'
.gethostbyaddr($_SERVER['REMOTE_ADDR']).'",
"'
.addslashes($_SERVER['QUERY_STRING']).'", "'.addslashes(TITLE).'", now())';
mysql_query($q) or print(mysql_error());


Note que addslashesPopular

( ) é necessário quando escreve-se strings em Banco de Dados por causa das tentativas de corte. Isto é algum tipo de método de encodificação ou encryptação, então precisará decodifica-lo quando você escrever a saída da string através da função stripslashes ( ).

Nosso próximo passo é o código do site que nos mostrará as estatísticas salvas no Banco de Dados. Esta página consiste de duas tabelas. A primeira tabela mostrará todos seus visitantes, cada registro ou linha representa um usuário. O dado é resgatado do Banco de Dados, usando clausula GROUP BY do MySQL. A tabela tem as seguintes colunas:


  1. Hostname

  2. Número de páginas visitadas

  3. Limpa tudo do seu visitante


$q='SELECT Host, COUNT(Site) AS cs FROM hits GROUP BY Host';
$visitor_r
=mysql_query($q) or print(mysql_error());
echo
"<h3>Visitantes</h3><table width=100% border=1><tr>n".
"<td><b>Hostname</td>n".
"<td><b>Paginas visitadas</td>n".
"<td align=center><b>Limpa tudo do seu visitante</td></tr>n";
while (
$visitor=mysql_fetch_array($visitor_r))
echo "<tr><td>".$visitor['Host']."</td>n".
"<td>".$visitor['cs']."</td>n".
"<td align=center><a href=?op=stat&delhost=".
urlencode
($visitor['Host']).">X</a></td></tr>";
// Este link é para deletar as páginas visitadas deste usuário
// Note urlencode(), ela contém a string que será consultada como uma URL.
echo "</table>";


A segunda tabela mostrará todas as impressões da página, diretamente do Banco de Dados. As colunas são:

  1. Página visitada.

  2. Hostname.

  3. Data.



E agora iremos ver o código para a segunda tabela:



$q='SELECT Title, Site, Host, Date FROM hits
ORDER BY Date DESC, Host'
;
$page_imp_r
=mysql_query($q) or print(mysql_error());
echo
"<h3>Impressões da pagina</h3>".
"<table width=100% border=1><tr>n".
"<td><b>Pagina visitada</td>n".
"<td><b>Hostname</td>n".
"<td><b>Data</td></tr>n";
while (
$page_imp=mysql_fetch_array($page_imp_r))
echo "<tr><td><a href=?".$page_imp['Site'].">".
$page_imp
['Title']."</a></td>n".
// Link para a página
"<td><a href=?op=stat&delhost=".$page_imp['Host'].">".
$page_imp['Host']."</a></td>n".
"<td>".$page_imp['Date']."</td></tr>";
echo "</table>";



É isso ae galera, este foi meu primeiro artigo. Espero que outros do grupo se encoragem e contribua com o que puder com a página do grupo. Afinal a proposta deste grupo é interação, troca de idéias e experiência. Até o próximo artigo ou notícia, ou que eu puder contribuir.

Fonte: http://www.devarticles.com/c/a/PHP/Making-Usage-Statistics-in-PHP/



 

Adicionar comentário


Código de segurança
Atualizar