Estatisticas de cliques nos endereços com painel em PHP

Outclick Stage é um script de estatisticas de cliques nos endereços com painel de controle das estatisticas diarias em PHP e Mysql onde você pode ver e deletar as estatisticas.

Crie uma pasta chamada stage detro dele coloque os seguinte arquivos:

Pagina: <b>admin.php</b>

<?php
require("shared.inc.php");
//////////////////////////////////////////////////////////// 
//  Outclick Stage v1.0.0                             /
//  Copyright (c)2009 stagedesign                          /
//  URL: http://www.stagedesign.com.br/                       /
////////////////////////////////////////////////////////////
//http://www.stagedesign.com.br/                            /
////////////////////////////////////////////////////////////

           if ($f == "login") {
           if ($admin == "$admin_pass") {
               Setcookie("admin",$admin_pass);
               Header ("Location: admin.php?f=main");
                } 
           else {
               echo "<center><font size=2 face=verdana color=#ff0000>Senha inválida. Por favor, tente novamente.</font></center>";
     }
}
         if ($HTTP_COOKIE_VARS["admin"] == $admin_pass) { 
             echo "<font face=Verdana Arial size=1><a href=admin.php?f=main>Pagina de administração</a></font>";

         if ($f == "main") { 
 
        //fazer conexão com o banco de dados
        $connection = mysql_connect("$dbhost","$dbuser","$dbpasswd")
              or die("Não foi possível fazer a ligação a base de dados.");

    	$sql = "SELECT DISTINCT day FROM clicks ORDER BY day DESC";

       // executar consulta SQL e obtenha resultado
        $sql_result = mysql_query($sql,$connection)
              or die("Não foi possível executar consulta de dados.");

        while ($row = mysql_fetch_array($sql_result)) {

       // buscar fila e atribuir variáveis
        $day  = $row["day"];

       //estrutura por data formulário valor campo
        $stat_dates .= "<OPTION value="$day">--  $day  --</OPTION>n";

}
head();
?>
<BR>
<CENTER>
<img src="img/header.jpg" height="43" width="398" border="0" ALIGN="CENTER" ALT="Outclick Stage">
<TABLE WIDTH="400" ALIGN="CENTER" BORDER="0">
<TR>
  <TD ALIGN="center" VALIGN="top">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Data: <?php echo date ("F jS Y"); ?> &nbsp; &nbsp; Hora certa: <?php echo date ("h:ia"); ?></font></TD>
</TR>
</TABLE>
<BR>
<table border="0" cellspacing="0" cellpadding="1" align="center" bgcolor="#06044D">
  <tr>
    <td>
      <table border="0" align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="5">
        <tr bgcolor="#06044D"> 
          <td align="center"><font size="2" face="verdana, arial" color="#FFFFFF"><b> ADMINISTRA&Ccedil;&Atilde;O DE CLICKS DO SITE </b></font></td>
        </tr>
 <tr>
  <td bgcolor="#EFEFEF"><font face="verdana, arial" size="2">Home <img src=img/arrow.gif width=8 height=7> <a href="<?php echo $track_url; ?>/help.php">Documentação</a></font></td>
 </tr>
 <tr>
  <td>
<script language="JavaScript">
<!--
function confirm_delete()
{
    if(confirm('Você realmente quer apagar as estatísticas deste dia?'))
    {
        document.stats_delete.submit();
    }
}
//-->
</script>
<form method="get" action="<?php echo $PHP_SELF; ?>">
<input type="hidden" name="f" value="stats">
<table width="450" align="center">
<tr>
<td width="150" align="right"><font face="verdana, arial" size="2"> Visualizar Estatisticas:</font></td>
<td width="250" align="center">
<select name="byday">
<OPTION value="null" selected><-- selecione a Data --></OPTION>
<?php echo "$stat_dates"; ?>
</select>
</td>
<td width="50" align="left">
<input type=submit value="Ver">
</td>
</tr>
</form>
</table>

<form method="get" action="<?php echo $PHP_SELF; ?>">
<input type="hidden" name="f" value="delete">
<table width="450" align="center">
<tr>
<td width="150" align="right"><font face="verdana, arial" size="2"> Deletar Estatisticas:</font></td>
<td width="250" align="center">
<select name="byday">
<OPTION value="null" selected><-- selecione a Data --></OPTION>
<?php echo "$stat_dates"; ?>
</select>
</td>
<td width="50" align="left">
<input type=submit value="Deletar" onClick="confirm_delete(); return false;">
</td>
</tr>
</form>
</table>
</td></tr>

</table>
    </td>
  </tr>
</table>
<BR>
<table border="0" cellpadding="0" cellspacing="0" width="450" align="center">
<tr bgcolor="#06044D"><td align="center">
<table cellspacing="1" cellpadding="3" border="0" width="450" align="center">
<tr><td bgcolor="#06044D" align="center" colspan="2">
<font face="Verdana, Arial" size="2" color="#FFFFFF">Outclick Stage ::Informação::</font></td>
</tr>
<tr bgcolor="#EFEFEF" width="400" align="left"><td><div id="result_box" dir="ltr">Vers&atilde;o instalada do    Outclick Stage </div></td>
<td bgcolor="#ffffff" width="50" align="center">
<font face="Arial" size="2"><?php echo $version; ?></font></td>
</tr>
<tr bgcolor="#EFEFEF" width="400" align="left"><td><div id="div" dir="ltr">Mais recente vers&atilde;o   dispon&iacute;vel do Outclick Stage</div></td>
<td bgcolor="#ffffff" width="50" align="center">
<font face="Arial" size="2">v<img src="http://www.stagedesign.com.br/" width="6" height="10" border="0">.<img src="http://www.stagedesign.com.br/" width="6" height="10" border="0">.<img src="http://www.stagedesign.com.br/" width="6" height="10" alt="" border="0"></font></td>
</tr>
</table>
</TD></TR></TABLE>
</CENTER>

<?php 

mysql_free_result($sql_result);
mysql_close($connection);
foot();
echo "www.arturaguiar.com";
 } ?>
<?php
           if ($f == "stats") { 
        $byday = urlencode($byday); 

       // fazer conexão com o banco de dados
        $connection = mysql_connect("$dbhost","$dbuser","$dbpasswd")
              or die("Não foi possível fazer a ligação a base de dados.");

        $sql = "SELECT * FROM clicks WHERE day='$byday' GROUP by url";

       // executar pesquisa e obtenha resultado
        $sql_result = mysql_query($sql,$connection)
              or die("Couldn't execute query.");

        while ($row = mysql_fetch_array($sql_result)) {

       // buscar fila e atribuir variáveis
        $day  = $row["day"];
        $url  = $row["url"];
        $raw  = $row["raw"];
        $uni  = $row["uni"];

       // estrutura das estatísticas por dia na tabela stats
        $option_stats_table .= "<tr>n 
     <td align="left" width="500" bgcolor="#EFEFEF"><font face="Verdana, Arial, Helvetica" size="1"><a href="$url">$url</a></font></td>n
     <td align="center" width="60" bgcolor="#EFEFEF"><font face="Verdana, Arial, Helvetica" size="1">$raw</font></td>n
     <td align="center" width="60" bgcolor="#EFEFEF"><font face="Verdana, Arial, Helvetica" size="1">$uni</font></td>n
    </tr>n";
}
head(); ?>
<BR>
<center>
<img src="img/header.jpg" height="43" width="398" border="0" ALIGN="CENTER" ALT="OUTCLICK STAGE">
<TABLE WIDTH="400" ALIGN="CENTER" BORDER="0">
<TR>
  <TD ALIGN="center" VALIGN="top">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Data: <?php echo date ("F jS Y"); ?> &nbsp; &nbsp; Hora certa: <?php echo date ("h:ia"); ?></font></TD>
</TR>
</TABLE>
<BR>
<table border="0" cellpadding="0" cellspacing="0" width="620">
 <tr>
  <td bgcolor="#FFFFFF" align="left" colspan="3"><font face="verdana, arial" size="2"><a href="<?php echo $track_url; ?>/admin.php?f=main">Home</a> <img src=img/arrow.gif width=8 height=7> Estatisticas </font></td>
 </tr>
 <tr bgcolor="#06044D">
    <td align="center">
<table cellspacing="1" cellpadding="3" border="0" width="100%">
  <tr> 
    <td align="left" width="500" bgcolor="#06044D"><font face="Verdana, Arial, Helvetica" size="2" color="#FFFFFF">Data dos cliques </font><font face="Verdana, Arial, Helvetica" size="2" color="#FFFFFF"> - <?php echo $byday; ?></font></td>
    <td align="center" width="60" bgcolor="#06044D"><font face="Verdana, Arial, Helvetica" size="2" color="#FFFFFF">Cliques</font></td>
    <td align="center" width="60" bgcolor="#06044D"><font face="Verdana, Arial, Helvetica" size="2" color="#FFFFFF">único</font></td>
  </tr>

<?php
           if ($byday != "null") { 
              echo "$option_stats_table";
           } 
           else { 
              echo "<tr><td align="center" width="620" colspan="3" bgcolor="#EFEFEF"><center><font size="2" face="verdana"><font color="#ff0000">Data inválida. </font> Selecione uma data válida acima.</font></center></td></tr>"; 
}
?>
</TABLE>
  </TD>
 </TR>
</TABLE>
</center>

<?php 
mysql_free_result($sql_result);
mysql_close($connection);
foot(); } ?>



<?php 

           if ($f == "delete") { 
        $byday = urlencode($byday);

           if ($byday == "null") {
                     head();
               echo "<font face="verdana" size="2"><font color="#FF0000"><b>ERROR:</b></font>Você deve escolher uma data válida Inorder Para Apagar Estatísticas.</font><br><br>";
               echo "<font face="verdana" size="1"><- <a href="admin.php?f=main">Voltar para a pagina principal</a></font>";
               echo "</body></html>";
               }
           else {

       // fazer conexão com o banco de dados
        $connection = mysql_connect("$dbhost","$dbuser","$dbpasswd")
              or die("Não foi possível fazer a ligação a base de dados.");

        $sql = "DELETE FROM ip WHERE day='$byday'";
       // executar pesquisa e obtenha resultado

        $sql_result = mysql_query($sql,$connection)
              or die("Não foi possível executar consulta.");


        $sql = "DELETE FROM clicks WHERE day='$byday'";
       // executar pesquisa e obtenha resultado

        $sql_result = mysql_query($sql,$connection)
              or die("Não foi possível executar consulta.");

          if(!$sql_result) {
                     head();
               echo "<font face="verdana" size="2"><font color="#FF0000"><b>ERROR:</b></font> Os selecionados Estatísticas Poderá não ser suprimido da base de dados.</font><br><br>";
               echo "<font face="verdana" size="1"><- <a href="admin.php?f=main">Voltar para a pagina principal</a></font>";
               echo "</body></html>";
               }
          else {
                     head();
               echo "<font face="verdana" size="2">As estatísticas foram selecionados excluídos do banco de dados.</font><br><br>";
               echo "<font face="verdana" size="1"><- <a href="admin.php?f=main">Voltar para a pagina principal</a></font>";
               echo "</body></html>";

        }
   }
} 
?>

<BR>


<?php } else { head(); ?>
<BR>
<form method="post" action="<?php echo $PHP_SELF; ?>?f=login">
<p align="center">&nbsp;</p>
<br>
<table border="0" cellpadding="1" cellspacing="0" width="275" align="center">
 <tr bgcolor="#06044D">
  <td align="center">
   <table border="0" cellspacing="0" cellpadding="5" align="center" width="275">
     <tr bgcolor="#06044D"> 
       <td align="center"><font face="verdana, arial" size="2" color="#ffffff"><b>ADMINISTRA&Ccedil;&Atilde;O</b></font></td>
     </tr>
     <tr>
       <td align="center" bgcolor="#EFEFEF"><input type="password" name="admin" size="20"><input type="submit" value="Login"></td>
     </tr>
     <tr>
       <td align="center" bgcolor="#EFEFEF"><font face="Verdana, Arial" size="2">Entre com o c&oacute;digo </font></td>
     </tr>
   </table>
 </td></tr>
</table>
</form>
<?php foot(); } ?>


Pagina: out.php 

<?php
require("shared.inc.php");
//////////////////////////////////////////////////////////// 
//  Outclick Stage v1.0.0                             /
//  Copyright (c)2009 stagedesign                          /
//  URL: http://www.stagedesign.com.br/                       /
////////////////////////////////////////////////////////////
//http://www.stagedesign.com.br/                            /
////////////////////////////////////////////////////////////

function error ($error_message) {
	echo $error_message."<BR>";
	exit;
}

$day = date("Y-m-d"); //formato da data
$url = urldecode($QUERY_STRING);

        if ((! $url) || (! preg_match("/http:/", $url))) error ("Error: Erro de sintaxe.Segue é um exemplo de uma correcta ligação sintaxe a utilizar:<br> <A HREF="$track_url/out.php?http://www.stagedesign.com.br/">$track_url/out.php?http://www.stagedesign.com.br/</A>");


if ($QUERY_STRING) {
	$result = mysql_query("SELECT * FROM clicks WHERE url='$url' AND day='$day'",$db);
	if(mysql_num_rows($result) > 0) {
		mysql_free_result($result);
		$result = mysql_query("SELECT UNIX_TIMESTAMP(time) FROM ip WHERE (url='$url' AND ipnum='$REMOTE_ADDR' AND day='$day')",$db);
		if($row = mysql_fetch_row($result)) {
				if(($row[0]+3600) < time()) {
					mysql_query("UPDATE clicks SET raw=raw+1,uni=uni+1 WHERE url='$url' AND day='$day'",$db);
					mysql_query("UPDATE ip SET time=NOW() WHERE url='$url' AND ipnum='$REMOTE_ADDR' AND day='$day'",$db);
				} else { // Se o clique é cru
					mysql_query("UPDATE clicks SET raw=raw+1 WHERE url='$url' AND day='$day'",$db);
				}
		mysql_free_result($result);
		} else { // novo endereço de ip
			mysql_query("UPDATE clicks SET raw=raw+1,uni=uni+1 WHERE url='$url' AND day='$day'",$db);
			mysql_query("INSERT INTO ip (url,ipnum,day) VALUES ('$url','$REMOTE_ADDR','$day')",$db);
		}
	} else { // se o seu novo um dia ou uma nova url
		mysql_query("INSERT INTO ip (url,ipnum,day) VALUES ('$url','$REMOTE_ADDR','$day')",$db);
		mysql_query("INSERT INTO clicks (url,day,raw,uni) VALUES ('$url','$day',1,1)",$db);
	}


	$url="Location: ".$url;
	header($url);
	exit;
}
?>


pagina: shared.inc.php


<?php
//////////////////////////////////////////////////////////// 
//  Outclick Stage v1.0.0                             /
//  Copyright (c)2009 stagedesign                          /
//  URL: http://www.stagedesign.com.br/                       /
////////////////////////////////////////////////////////////
//http://www.stagedesign.com.br/                            /
////////////////////////////////////////////////////////////

// EDIT THE FOLLOWING VARIABLES
#######################################

//definir a sua senha administrativa da area restrita administrativa
$admin_pass = "123456";

//url para clicar contador diretório w / o da barra - ex: http://www.yoursite.com/stage
$track_url = "http://www.seusite.com.br/stage";

// Título do seu site - ex: Seu Site
$site_name = "Nome do seu site";

// o seu servidor mysql - ex: localhost
$dbhost	= "localhost";

// o usuário mysql - ex: root
$dbuser	= "login";

// mysql sua senha
$dbpasswd = "senha";

// Outclick Stage v1.0.0 nome da base de dados
$dbname = "nome do banco de dados";


#######################################
// NÃO EDITAR NADA abaixo desta linha para não prejudicar sua aplicação
#######################################

$db=mysql_connect("$dbhost","$dbuser","$dbpasswd");
mysql_select_db("$dbname",$db) or die ("Unable to select database");

$version = "v1.0.0";

// header function
 function head() {
print "<html>n";
print "<head>n";
print "<meta http-equiv="Content-Language" content="en-us">n";
print "<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">n";
print "<title>Outclick Stage v1.0.0</title>n";
print "</head>n";
print "<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#003366" VLINK="#003366" ALINK="#ff0000" TOPMARGIN="8">n";
print "<style type="text/css">n";
print "<!--n";
print "a:hover   {text-decoration: underline; color: #31639C}n";
print "a:active  {text-decoration: underline; color: #ff0000}n";
print " //-->n";
print "</style>n";
}

// footer function
 function foot() {

print "<BR><CENTER>n";
print "<FONT FACE="Verdana" SIZE="-2">Stage Design v1.0.0  by <A HREF="http://www.stagedesign.com.br/">http://www.stagedesign.com.br</A>&copy</FONT>n";
print "</CENTER>n";
print "</BODY></HTML>n";
}

?>

pagina: help.php

<?php
require("shared.inc.php");
//////////////////////////////////////////////////////////// 
//  Outclick Stage v1.0.0                             /
//  Copyright (c)2009 stagedesign                          /
//  URL: http://www.stagedesign.com.br/                       /
////////////////////////////////////////////////////////////
//http://www.stagedesign.com.br/                            /
////////////////////////////////////////////////////////////

head();
?>

<table border="0" cellspacing="0" cellpadding="1" align="center" bgcolor="#06044D" width="80%" align="center">
  <tr>
    <td>
      <table border="0" align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="5" width="100%">
        <tr bgcolor="#06044D"> 
          <td><font face="verdana, arial" size="+2" color="#ffffff"><b>Outclick Stage - Documentação</b></font></td>
        </tr>
 <tr>
  <td bgcolor="#EFEFEF"><font face="verdana, arial" size="2"><a href="<?php echo $track_url; ?>/admin.php?f=main">Home</a> <img src=img/arrow.gif width=8 height=7>Documentação</font></td>
 </tr>
        <tr> 
          <td bgcolor="#EFEFEF"> 
           <font face="verdana, arial" size="2"><b>Informações Gerais</b></font>
            <font face="verdana, arial" size="2">
            <p>Para instalação ou Atualizando instruções, por favor leia o arquivo INSTALL <br> 
                que foi incluída com o script arquivo que você baixou. </p> 
             <p> Outclick Tracker Rápida Visão geral </p>
            <ol>
              <li>Permite-lhe manter controle do número de cliques (bruto e única) em links que você especificar. </Li> 
               Um <li> admin interface que permite visualizar e apagar stats. </li> 
               Um <li> mysql backend que armazena todos os dados e capaz de lidar com grandes volumes de cliques.</li>
            </ol>
            <p>Exemplo:</p>
            </font><ul>
              <li><font size="2" face="verdana, arial">&lt;a href="<font color="#FF0000">http://www.stagedesign.com.br/stage/out.php?http://www.stagedesign.com.br/</font>"&gt;Excite&lt;/a&gt;</font></li>
            </ul>
            <font face="verdana, arial" size="2"><BR>
            <font face="verdana, arial" size="2"><b>Administração da area</b></font>
            <p>A administração área é acessível através de: <font color="#FF0000"> <? Php echo $ track_url;?> / Admin.php </font> </p> 
             <p> Visualizando Estatisticas</p>
            <ol>
              <li>Escolha um dia a partir do menu suspenso sobre a administração principal página. </Li> 
               <li> Clique no botão enviar e suas estatísticas para esse dia será exibido. </li> 
               Estatísticas <li> informações exibidas serão monitorados url, & bruto cliques exclusivos cliques.</li>
            </ol>
            <p>Deletando Estatisticas</p>
            <ol>
              <li>Escolha um dia a partir do menu suspenso sobre a administração principal página. </Li> 
               <li> Clique no botão enviar e suas estatísticas para esse dia será eliminado. </li> 
               <li> A confirmação será exibida informando que você quer ou não a eliminação foi bem sucedida.</li>
            </ol>
          </font>          </td>
        </tr>  
 <tr>
  <td bgcolor="#EFEFEF"><font face="verdana, arial" size="2"><a href="<?php echo $track_url; ?>/admin.php?f=main">Home</a> <img src=img/arrow.gif width=8 height=7> Documentação</font></td>
 </tr>
      </table>
    </td>
  </tr>
</table>
<?php foot(); ?>
 
agora vamos criar uma pasta com o nome install e criar os seguintes arquivos:

pagina: install.php


<?php
require("../shared.inc.php");
//////////////////////////////////////////////////////////// 
//  Outclick Stage v1.0.0                             /
//  Copyright (c)2009 stagedesign                          /
//  URL: http://www.stagedesign.com.br/                       /
////////////////////////////////////////////////////////////
// A return link to codesmokers.com would be appreciated:  /
//http://www.stagedesign.com.br/                            /
////////////////////////////////////////////////////////////

head();
        if($f == "install") {

        // fazer conexão com o banco de dados
        $connection = mysql_connect("$dbhost","$dbuser","$dbpasswd")
              or die("Não foi possível fazer a ligação a base de dados");

        @mysql_select_db( "$dbname") or die( "Unable to select database");
          $create = "CREATE TABLE clicks (day date DEFAULT '0000-00-00' NOT NULL , url varchar(120) NOT NULL , raw int(11) NOT NULL , uni int(11) NOT NULL )";
          $sql_result = mysql_query($create);

          $create = "CREATE TABLE ip (day date DEFAULT '0000-00-00' NOT NULL , url varchar(120) NOT NULL , time timestamp(14) , ipnum varchar(15) NOT NULL )";
          $sql_result = mysql_query($create);

        if(!$sql_result) {
          echo "Alguma coisa correu mal! O quadro provavelmente já existe.";
          } 
        else {
          echo "Outclick Stage Tabelas foram criadas e seu pronto para usar o programa.<br><br>";
          echo "<a href="$track_url/admin.php" target="_top">Click Here</a> to login to the administration area.<br><br>";
  }
mysql_close($connection);
}
 
        else {
         echo "<center>";
         echo "<a href="$PHP_SELF?f=install">Clique aqui para instalar o Banco de Dados Tabelas</a><br><br>";
         echo "</center>";
         foot();
}
?>

e a formatação do banco de dados mysql


stage.sql

# Host: localhost Database : outclicks
# --------------------------------------------------------
#
# Table structure for table 'clicks'
#
CREATE TABLE clicks (
   day date DEFAULT '0000-00-00' NOT NULL,
   url varchar(120) NOT NULL,
   raw int(11) NOT NULL,
   uni int(11) NOT NULL
);


# --------------------------------------------------------
#
# Table structure for table 'ip'
#
CREATE TABLE ip (
   day date DEFAULT '0000-00-00' NOT NULL,
   url varchar(120) NOT NULL,
   time timestamp(14),
   ipnum varchar(15) NOT NULL
);

"Atenção"

Outclick Stage- Instalação 

   Quick Install: 
     [1] Descompacte o arquivo (não se esqueça de incluir subpastas), mas você já tiver 
         feito isso. 

     [2] Abra o arquivo em seu editor favorito shared.inc.php e definir 
         as variáveis conforme explicado pelas observações. 

     [3] Crie um diretório em seu servidor chamado "Stage" e upload 
         todos. php arquivos ASCII em modo imagem e todos os arquivos em modo binário. 


     [6] Criar banco de dados mysql que você usará para Outclick Stage 
         (nome padrão: "outclicks"). A seguir você terá que criar 2 tabelas dentro 
         banco de dados que você acabou de criar, há um par de diferentes maneiras de fazer isso. 
           1. você pode executar o arquivo de instalar o navegador http://yoursite.com/stage/install/install.php 
           2. Nós incluímos um stage.sql arquivo dentro do diretório para instalar o mysql usuários mais experientes. 
           3. você também pode encontrar ferramentas de dados mysql para tornar o trabalho com muito mais fácil e menos morosa 
              em: http://www.hotscripts.com/PHP/Scripts_and_Programs/Database_Tools/ 

     [7] Depois de ter concluído os passos acima aponte seu navegador para: 
         http://www.yoursite.com/stage/admin.php o login na área da administração. 
  

   Instalação notas: 

         Se você tiver problemas para instalar Outclick Stage tracker pode contactar-nos para obter ajuda 
         em: stagedesign@stagedesign.com.br 

         Se você enfrentar problemas com o Outclick Stage qualquer tracker informe-lhes: 
             artur@arturaguiar.com

para baixar os arquivos deste tutorial clique no link abaixo

Arquivos para Download:

stage.zip

Nós queremos saber sua opinião aqui