Hola a todos, estoy tratando de hacer un contador de visitas que se base en ip y use mysql.
El caso es que pude hacer uno, pero solo me sirve en una sola pagina, es decir, si coloco el mismo contador en otra pagina no funciona.
Este es el codigo del contador:
Código PHP:
<!-- CONTADOR VISITAS -->
<?php
//CONEXION BASE DE DATOS
$conexion = mysql_connect("DATOS DE SERVIDOR Y BASE")
or die ('Ha fallado la conexión: '.mysql_error());
//SELECCIONAR BASE
mysql_select_db("BASE DE DATOS")
or die ('Error al seleccionar la BD: '.mysql_error());
//VARIABLES
$ip = $_SERVER['REMOTE_ADDR'];
$titulo_pelicula == "$pelicula";
//CONSULTAR IP EXISTENTES
$consulta = "SELECT id,ip,titulo_pelicula,numero_visita,fecha,TIMEDIFF(NOW(),fecha) FROM contador_visitas"; //OBTENER DATOS DE LA BASE
$ejecutar = mysql_query($consulta, $conexion);
$resultado=mysql_fetch_array($ejecutar);
$numero_visitas = $resultado ['numero_visita'];
if ($resultado['ip'] == $ip && $resultado['titulo_pelicula'] == $pelicula) //lo que creo que hago aca es decir
//"si la ip de la base es igual a la del servidor y el titulo de pelicula de la base
// es igual a la pelicula de la pagina hacer lo de abajo
{
if ($resultado ['TIMEDIFF(NOW(),fecha)'] > "00:15:00") //Si la diferencia de tiempo entre las fechas
// de la base de datos y la actual es menor a quince minutos, hacer...
//Es aqui donde creo que debe haber un error pero no logro verlo
{
echo "La diferencia es mayor a 15 minutos";
$numero_visita = $resultado ['numero_visita'];
$numero_visita ++;
echo $numero_visita;
$aumentar_visita = "UPDATE contador_visitas SET numero_visita=$numero_visita WHERE titulo_pelicula='$pelicula' AND ip='$ip'"; //Aumentar en 1
// el numero de la visita
mysql_query ($aumentar_visita,$conexion);
echo $resultado['ip'];
}
}
else //Si la ip consultada en la tabla y o el titulo de pelicula no existen, entonces
{
echo "Primera Visita";
$primera_visita++;
$guardar = "INSERT into contador_visitas (ip,titulo_pelicula,numero_visita) values('$ip','$pelicula','$primera_visita')";
mysql_query ($guardar,$conexion);
}
//CERRAR CONEXION A BASE DE DATOS
mysql_close($conexion);
?>
<!-- FIN CONTADOR VISITAR -->
El caso es que en una pagina que tiene como variable $pelicula = "Pelicula1" e IP 111.111.111.111, por ejemplo, y si la base esta vacia, ingresa los datos de ip, titulo_pelicula y fecha (la fecha es en un TIMESTAMP). Y si actualizo la pagina, no hace nada. Si actualizo luego de 15 minutos, me actualiza correctamente el numero_visita sumandole 1.
Pero si tengo otra pagina con la variable $pelicula = "Pelicula2" e ip 111.111.111.111 (ojo que es la misma ip de pelicula1) lo unico que hace es agregar ip, titulo_pelicula, fecha y numero_visita una y otra vez, es como si no pasara el if para comprobar si han pasado mas de 15 minutos, porque ingresa los mismos datos cada vez que actualizo la pagina y no como con pelicula1 donde si no han pasado mas de 15 minutos no hace nada.
Espero haberme explicado bien y espero que me puedan ayudar.
No soy experto en esto asi que aun me cuesta un poco.
De antemano, muchas gracias.