Foros del Web » Programando para Internet » PHP »

tiempo en modulo

Estas en el tema de tiempo en modulo en el foro de PHP en Foros del Web. tengo una duda quiero hacer un modulo de descargas donde al ingresar puedan descargar un archivo y si intentan descargar de nuevo no puedan, hasta ...
  #1 (permalink)  
Antiguo 14/08/2009, 19:30
 
Fecha de Ingreso: mayo-2008
Mensajes: 287
Antigüedad: 15 años, 11 meses
Puntos: 2
tiempo en modulo

tengo una duda quiero hacer un modulo de descargas donde al ingresar puedan descargar un archivo y si intentan descargar de nuevo no puedan, hasta despues de un minuto,lo que hice fue almacenar la ip y la hora, pero despues ya no se que hacer
como comparar la ip y la hora, y si ya descargo como blokearlo por un minuto "la ip " y si ya paso ese minuto dejar descargar otro archivo
  #2 (permalink)  
Antiguo 14/08/2009, 21:37
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: tiempo en modulo

Usa sesiones; debes incluir session_start(); antes de enviar cualquier contenido al navegador en todas las paginas (al menos en las que esten involucradas con la descarga) y, ojo, es en todas las paginas, no en todos los archivos de tus scripts.

Cuando el usuario hace click en descargar:
Código php:
Ver original
  1. $minutos = 1; // Cambias este si deseas bloquear por mas tiempo
  2. $bloquear = time() + ($minutos * 60);
  3.  
  4. // Verificas y bloqueas
  5. if(isset($_SESSION['bloquear']) && $_SESSION['bloquear'] > $bloquear) {
  6.     die('No puedes descargar todavia, intenta mas tarde.');
  7. }
  8.  
  9. // Si puede descargar, inicializa el bloqueo
  10. $_SESSION['bloquear'] = time();
  11.  
  12. // Aqui continuas normal
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/08/2009, 19:46
 
Fecha de Ingreso: mayo-2008
Mensajes: 287
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: tiempo en modulo

entonses esta bien que almacene la hora y la ip ?

pero no entiendo como realizo la peticion y la comparo, o solo almaceno la ip y la comparo aqui ???
isset($_SESSION['ip']) && $_SESSION['hora'] > $bloquear
o como comparo la ip con el tiempo, se guarda la ip y el tiempo, descarga y despues si quiere descargar no se compararia la hora en que se inserto ? y si ya paso el tiempo limite descarge? es que ya me confundi
  #4 (permalink)  
Antiguo 15/08/2009, 20:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: tiempo en modulo

No necesitas guardar la IP, solamente la hora en que realizo la ultima descarga. Las sesiones pueden almacenarse en el servidor y/o en la PC del usuario, mediante cookies. Mas info en el Manual de PHP

Código php:
Ver original
  1. // Las siguientes dos lineas son solo para establecer el tiempo limite
  2. $minutos = 1; // Cambias este si deseas bloquear por mas tiempo
  3. $bloquear = time() + ($minutos * 60);
  4.  
  5. // Verificas y bloqueas
  6. // isset() es para verificar si ya existe la variable (solo cuando ya descargo algo)
  7. //    Despues se compara si ya transcurrio el tiempo limite
  8. if(isset($_SESSION['bloquear']) && $_SESSION['bloquear'] > $bloquear) {
  9.     // Aqui entra solo cuando tiene que esperar para realizar otra descarga
  10.     die('No puedes descargar todavia, intenta mas tarde.');
  11. }
  12.  
  13. // Si llego hasta aqui, es porque si puede descargar
  14. // Entonces, se vuelve a establecer la variable, para que no descargue nuevamente
  15. // Hasta que haya pasado el tiempo seleccionado
  16. $_SESSION['bloquear'] = time();
  17.  
  18. // Aqui continuas normal
__________________
- León, Guanajuato
- GV-Foto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:41.