Hola a todos.
Saben de algun script que haga la funcion de un contador de visitas ( como los que hay en cualquier sitio de recursos web ) PERO que los usuarios no vean ese contador, de forma que pense en que cada vez que alguien entre al web se agrege en una BD mysql un numero , como si se tratara de un autoincrement asi sabiendo las visitas totales del site.
Alguna idea de como hacerlo o si ya esta el script hecho?
Saludos
Pues sencillo: modifica tu código de tal forma que a la hora de contar las visitas las guarde en tu base de datos y elimina el echo del código para que no se muestre el número de visitas en el navegador.
Salu2 ;)
Hola
Cogi un codigo y lo modifique un poquito, pero no me funciona, puede decirme que hay mal¿
<?
$host="localhost";
$user="XXXXXXXXXXXX"; //usuari de la base de dades
$pass="XXXXXXXXXXXX"; //password de la base de dades
$db="estadisticas"; //nom de la base de dades
$conexion = mysql_connect($host,$user,$pass);
mysql_select_db($db,$conexion);
// $con es el identificador de la conexion con la base de datos
function visitas($con) {
// Tiempo que se guardará la cookie (Por defecto 10 minutos)
$minutos = 10;
// ------------------
$laFecha = getdate();
$mesActual = $laFecha["mon"];
$anioActual = $laFecha["year"];
$resultadoSQL = mysql_query("SELECT * from estadisticas WHERE mes=$mesActual AND año=$anioActual",$con);
if(mysql_num_rows($resultadoSQL) == 0) {
$actualizacion = mysql_query("INSERT INTO estadisticas (mes, año, visitas) VALUES ($mesActual, $anioActual, 0)",$con);
}
$resultadoSQL = mysql_query("SELECT SUM(visitas) from estadisticas",$con);
$datosStats = mysql_fetch_row($resultadoSQL);
$total = $datosStats[0];
$resultadoSQL = mysql_query("SELECT * from estadisticas",$con);
$datosMensual = mysql_fetch_row($resultadoSQL);
$elMes = $datosMensual[0];
$elAnio = $datosMensual[1];
$visitasDelMes = $datosMensual[2];
$visitante = $_COOKIE['misVisitas'];
if(!isset($visitante)) {
setcookie("misVisitas","visitante",time()+(60*$minutos),"/");
if($mesActual!=$elMes) {
$delMes=0;
}
$total++;
$visitasDelMes++;
$actualización = mysql_query("UPDATE estadisticas set visitas=$visitasDelMes WHERE mes=$mesActual AND año=$anioActual",$con);
}
$resultadoVisitas[0] = $total; //Total de visitas en la página
$resultadoVisitas[1] = $visitasDelMes; //Visitas totales del Mes actual
return $resultadoVisitas;
}
?>
Si el codigo esta tremendamente mal y no se puede arreglar " no lo he manipulado tanto...." habria algun otro que vosotros conozcais que cuente las visitas de la web en mysql¿
Saludoos
Puedes hacer algo asi en el code de tu pagina
bla bla bla
bienvenidos a mi pagina
<?php
$ahora = time();
mysql_connect('localhost', 'user', 'pass');
mysql_db_select('database'); //No estoy seguro si es así o select_db
mysql_query("INSERT INTO tabla VALUES ($ahora) ");
?>
Bueno algo así, se me hace lo más sencillo, se registrará la hora y dia en que se visito. Obviamente debes crear una tabla con un campo que sea un int(40) (de 40 bytes porque time devuelve unos enteros muy grandes).
Luego puedes recuperar las visitas totales con
mysql_query("SELECT count(*) FROM tabla");
creo que sería algo así.
Espero sea de ayuda
Hola
Perfecto, ya lo tengo todo montado, incluso con nº de identificacion para usuarios con auto_increment , registro de las ip\\\'s y la hora.
Gracias
Ahora me surge un pequeño problema, esta tabla con el tiempo ira creciendo y se puede hacer enormeeee, por eso desde MySQL estaria bien limita la tabla a un maximo de registros, por ejemplo 1000 y que una vez llegue al nº 1001, en vez de crear mas registros, sustituya el registro nº 1 que se hizo hace muucho tiempo y así sucesiavamente, despues que sustituya al registro nº 2 , ....etc
La verdad es que no se como hacer esto con MySQL, o alguna cosa parecida para que la tabla no me llegue a ocupar decenas de MB, alguna idea?
Saludos