Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/03/2014, 07:50
DandyCC
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 12 años, 4 meses
Puntos: 1
Obtener la fecha actual de modo seguro (no desde el ordenador)

Buenas. Vereis tengo un problema muy simple. Para hacer determinadas cosas he de comprobar que una fecha almacenada en la BD sea anterior a hoy. La comparación de fechas no es problema, pero el script, si cambio manualmente la fecha en el reloj del ordenador, toma esa fecha como válida.

Esto me genera un problema porque por ejemplo, un usuario crea una tarea y pone como fecha límite de entrega el 24/03/2014 (ayer). Hoy entra en la aplicación el usuario a quien va dirigida la tarea y ve que se le pasó el límite. Simplemente tendría que cambiar la fecha de su ordenador para engañar al script. Lo he probado y es así.

Código PHP:
Ver original
  1. $fecha_limite_tarea = "24/03/2014";
  2. $array_fecha_limite_tarea = explode("/", $fecha_limite_tarea);
  3.    
  4. // timestamp de hoy
  5. $time_hoy = mktime(0,0,0,date("n"),date("d"),date("Y"));
  6.    
  7. // timestamp de la fecha límite
  8. $time_fecha_limite_tarea = mktime(0,0,0,$array_fecha_limite_tarea[1],$array_fecha_limite_tarea[0],$array_fecha_limite_tarea[2]);
  9.    
  10. if($time_fecha_limite_tarea >= $time_hoy)
  11.     // El usuario puede entregar la tarea.
  12. else
  13.     // El usuario ya no puede entregar la tarea.

¿Hay alguna forma de evitar esto? ¿Tomando la fecha actual de otra forma?