Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/07/2009, 18:37
Avatar de thesixhalcon
thesixhalcon
 
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid (España)
Mensajes: 55
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Guardar clicks e ip y borrar a diario...

Ok, me equivoqué pues. Puede que una solución sea la de hacer un query a ver si encuentra la IP en la bbdd y si existe, despues comprobar la fecha (formato DATETIME) y restar con la fecha actual
Código PHP:
<?php
/*
 * Google: "restar datetime php" -> 5º Resultado:
 * http://www.php-hispano.net/foros/PHP/30194
 */
function horas($t1$t2) {
// calcula la diferencia en horas entre dos marcas de tiempo (aaaa-mm-dd hh:mm:ss)
// t1 - marca inicial, t2 - marca final
// primero calculamos la diferencia en días
$fecha1 explode(" "$t1);
$fecha2 explode(" "$t2);

$fecha_inicial $fecha1[0];
$fecha_final $fecha2[0];
$s = (strtotime($fecha_final) - strtotime($fecha_inicial)) / 86400;

// ahora la diferencia en horas
$tiempo_inicial explode(":"$fecha1[1]);
$tiempo_final explode(":"$fecha2[1]);
$hora_final $tiempo_final[0];
$hora_inicial $tiempo_inicial[0];

// Se resta uno si tenemos menos de 24 horas de diferencia
if($hora_final >= $hora_inicial) {
$h $hora_final $hora_inicial;
} else {
$h = (24 $hora_inicial) + $hora_final;
$s $s 1;
}

$t 24 $s $h;
return 
$t;
}
$ip $_SERVER['REMOTE_ADDR'];
$query mysql_query("SELECT fechaclick FROM clicks WHERE ip='".$ip."';");

if(
mysql_num_rows() > 0) {
  
$row mysql_fetch_assoc($result);
  if(
horas($row["fechaclick"], date("Y-m-d h:i:s")) > 24) {
    
mysql_query("DELETE FROM clicks WHERE ip='".$ip."';"); // Esto es por si quieres borrar el registro antiguo. (y espero que se haga, si no, habrá conflicto y tendrás que implementar un método que complemente a este para que escoja el registro con la fecha más actual)
    
mysql_query("INSERT...");
  } else {
    echo 
"Ya has hecho click en menos de 24 horas";
  }
} else {
  
mysql_query("INSERT .....");
}

?>
Me he tomado la libertad de cambiarte los nombres de los campos de la tabla y el nombre de la tabla, pero supongo, sabrás a que se refiere cada uno.
Con ese código, creo que tu duda está resuelta. Espero que sepas apreciar el código hecho.

Un saludo!
__________________
Respondo a MP, si de verdad es necesario. No pidas que te den el código hecho, pide el método y aprende de él.
lowsession.com - ¡La noche es tuya!