He dejado el contador para que no repita la ip durante x tiempo y así tener las visitas algo más reales, pero el problema es que al eliminar de la bbdd las ip registradas para no tener que almacenar todas las visitas pues el contador se me pone a 0 cuando debería seguir mostrándome las visitas en base al id y no a la ip.
He estado mirando y haciendo pruebas pero la verdad es que no se mucho y el que no sabe es como el que no ve, y he optado por pediros ayuda.
Aquí os dejo mi code del counter a ver si me podéis decir donde esta el error de la consulta que manda al contador las visitas.
Código:
Muchas gracias.<?php //se requiere el archivo para validar los datos de usuario de bdd para conectar require('include/config.php'); $ip = $_SERVER['REMOTE_ADDR']; $fecha = date('Y-m-d H:i:s'); $segundos = time(); $can = "60"; $resta = $segundos-$can; //se asignan la variables $sql = "SELECT segundos, ip "; $sql.= "FROM contador WHERE segundos >= $resta AND ip LIKE '$ip' "; $es = mysql_query($sql, $conexion) or die("Error en la conexión a la base de datos: ".mysql_error); //se buscan los registros que num de seg mayor a num de seg hace una hora e IP if(mysql_num_rows($es)>0) {//no se cuenta la visita } else { $sql = "INSERT INTO contador (id, ip, fecha, segundos) "; $sql.= "VALUES ('','$ip','$fecha','$segundos')"; $es = mysql_query($sql, $conexion) or die("Error al grabar un mensaje: ".mysql_error); } //creamos el condicionamiendo para sumarlo o no. $sql = "SELECT * "; $sql.= "FROM contador WHERE id "; $es = mysql_query($sql, $conexion) or die("Error al leer base de datos: ".mysql_error); $visitas = mysql_num_rows($es); $men=$men . "<table width='6%' border='0' height='25' bgcolor='#ffffff'>" . chr(10); $men=$men . "<tr>" . chr(10); $men=$men . "<td><font color=#000000>Visitas:$visitas</font></td>" . chr(10); $men=$men . "</tr>" . chr(10); $men=$men . "</table>" . chr(10); mysql_close($conexion); ?>
Un saludo