Este tutorial consiste en hacer un script en php para poder controlar los referers de nuestra web.
Que qué es un referer? Pues para explicarlo de una forma sencilla, son las páginas que nos mandan las visitas :P Por ejemplo si la web de mi amigo tiene mi banner o un enlace a mi página se crea una variable llamada $HTTP_REFERER que contiene la url de donde proviene la visita.
Lo primero de todo, es crear la tabla en mysql. Solo necesitamos dos campos, uno para guardar las urls y otro con las veces que han llegado. Esto se mete desde el phpmyadmin u otro similar, en la seccion SQL
Código PHP:
CREATE TABLE referers (
referer varchar(255) NOT NULL default '',
veces int(10) NOT NULL default '1'
) TYPE=MyISAM;
Una vez tengamos la tabla creada, pasamos al siguiente paso. El código que vais a ver a continuación lo que hace es guardar estos referers. Esto lo debeis ponerlo al principio del archivo que cargue la index (index.php). Lo podeis poner en todas las secciones que querais. Teneis que editar tb los datos de MySQL
Código PHP:
<?
$dbhost = "localhost"; //host de MySQL
$dbuser = "usuario"; //usuario de MySQL
$dbpass = "contraseña"; //contraseña de MySQL
$dbdb = "nombre_de_la_db"; //nombre de la base de datos
$conx = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbdb,$conx);
if (!eregi($HTTP_HOST,$HTTP_REFERER)) { //esto es para que no cuente como referer nuestra propia pagina, cuando navegamos por ella
if ($HTTP_REFERER) { //si hay algun referer...
//buscamos algun referer como el que nos ha llegado
$query = "select * from referers where referer='$HTTP_REFERER'"; $resp = mysql_query($query); $datos = mysql_fetch_array($resp);
//si no hay ninguno, si es la primera vez que llega... lo insertamos
if (mysql_num_rows($resp) == 0) { $query = "insert into referers (referer, veces) values ('$HTTP_REFERER', '1')"; mysql_query($query); }
//si ya existe, actualizamos los datos, incrementando en 1 el valor que ya habia
else { $query = "UPDATE referers SET veces=$datos[veces]+1 WHERE referer='$HTTP_REFERER'"; mysql_query($query); }
}
}
mysql_free_result($resp);
mysql_close($conx);
?>
Con esto ya los datos serán almacenados. SOlo queda hacer algo para poder mostrarlo en la pantalla para poder verlos. Se puede hacer algo simple como lo siguiente (podeis mejorarlo, e incluso adaptarlo a vuestra página web y ponerlo como una sección más) Lo subimos en un archivo nuevo llamado referers.php
Código PHP:
<html>
<title>Referers</title>
<body>
<table border="1" width="100%" cellpadding="0" cellspacing="0">
<?
$dbhost = "localhost"; //host de MySQL
$dbuser = "usuario"; //usuario de MySQL
$dbpass = "contraseña"; //contraseña de MySQL
$dbdb = "nombre_de_la_db"; //nombre de la base de datos
$conx = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbdb,$conx);
$query = "select * from referers order by veces desc"; $resp = mysql_query($query);
while ($datos = mysql_fetch_array($resp)) {
echo "<tr><td align=\"right\">$datos[veces] -</td><td>> <a href=\"$datos[referer]\" target=\"_blank\">$datos[referer]</a></td></tr>\n";
}
mysql_free_result($resp);
mysql_close($conx);
?>
</table>
</body>
</html>
Listo!!!!