Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2013, 07:41
Avatar de lisandrogiovani
lisandrogiovani
 
Fecha de Ingreso: enero-2013
Ubicación: Santiago de Chile
Mensajes: 6
Antigüedad: 11 años, 4 meses
Puntos: 0
No logro hacer funcionar un contador

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.