Foros del Web » Programando para Internet » PHP »

Limitar la cantidad de downloads de un usuario.

Estas en el tema de Limitar la cantidad de downloads de un usuario. en el foro de PHP en Foros del Web. Hola raza ! Ando viendo cómo puedo limitar la cantidad de descargas que un usuario puede hacer. Ya se me ocurrió algo, pero no sé ...
  #1 (permalink)  
Antiguo 10/11/2005, 19:11
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Pregunta Limitar la cantidad de downloads de un usuario.

Hola raza !

Ando viendo cómo puedo limitar la cantidad de descargas que un usuario puede hacer.

Ya se me ocurrió algo, pero no sé si sea una solución muy básica y fácil de brincarla, consiste en lo siguiente:

Juan Pérez tiene derecho a descargar 5 archivos, entonces en una de la tablas de una BD yo puedo colocar el número de archivos que Juan Pérez tiene derecho a descargar, algo como:


id_descarga | id_usuario | id_archivo_path
==========================================
5001 -------- 150 -------- 4
5002 -------- 150 -------- 10
5003 -------- 150 -------- 45
5004 -------- 150 -------- 128
5005 -------- 150 -------- 4444

(ahí están los 5 archivos que tiene derecho a descargar Juán Pérez, que es el usuario 150)

Ahora, Juan Pérez sólo tiene derecho a descargar esos archivos, ni uno sólo adicional.

Estaba pensando en que podría hacer un script llamado downloads.php para que Juan Pérez se descargue sus archivos permitidos. Los enlaces serían algo como:

Código HTML:
/downloads.php?archivo_id=4
/downloads.php?archivo_id=10
/downloads.php?archivo_id=45
/downloads.php?archivo_id=128
/downloads.php?archivo_id=4444
Ese script downloads.php problemente primero tendrá que consultar a la BD si Juan Pérez tiene derecho de descargar el archivo en particular, para ello tendré que monitorear la sesión de Juan Pérez, con el fin de poder hacer dicha consulta.

Si Juan Pérez tiene derecho, entonces ese script le proporcionará el archivo que ha pedido, quizá algo como:

Código PHP:
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=ruta-secreta/contaminacion.pdf"); 
(para obtener ese nombre contaminacion.pdf tuvo que ser necesario consultar la BD, específicamente la tabla que contiene el nombre del fichero con la id=4 o culquier otra id a la que Juan Pérez tiene derecho a descargar.


Lo que no quiero es lo siguiente:
  • Que la ruta-secreta/contaminacion.pdf en realidad no sea tan secreta (a la mejor la vio en la barra de estado) o por cualquier cosa la conoció y ahora ande poniendo por ahí LINKS al documento que se supone sólo pocos pueden ver.
  • Tampoco que Juan Pérez ande descargando a cada rato el documento, pero eso quizá podría arreglarlo colocando en una variable la cantidad de veces que ha iniciado sesión y accesado al documento.

Les agradezco cualquier TIP, o como luego le llaman aquí, algún CABLE para solucionar este problemilla.

Thanks !
  #2 (permalink)  
Antiguo 10/11/2005, 19:26
 
Fecha de Ingreso: octubre-2005
Mensajes: 19
Antigüedad: 12 años, 2 meses
Puntos: 0
lo que podes hacer es guardar que cuando el usuario realize la descarga si no esta guardada su ip en la db que la guarde y que guarde la fecha tambien y cada descarga ver cuantas filas a nombre de esa ip hay en esa fecha, bueno es solo una idea hay voy a trabajar u poco en eso para ver si te puedo ayudar OK.
  #3 (permalink)  
Antiguo 10/11/2005, 20:33
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Aunque lo de guardar la IP no resolvería el que se coloque una ruta directa para descargar el archivo, algo como:

www.dominio.com/ruta-secreta/contaminacion.pdf

y yo ni enterado que se bajan las cosas por ahí. Debe haber alguna forma para evitar ese agujero de seguridad, ¿qué será?

Thanks
  #4 (permalink)  
Antiguo 20/05/2006, 15:55
 
Fecha de Ingreso: octubre-2004
Ubicación: Lima, Perú
Mensajes: 185
Antigüedad: 13 años, 1 mes
Puntos: 1
Estaba leyendo este post, tengo una tabla en donde pongo la ruta de mis archivos que van a descargar pero me gustaria saber coo pued limitar as descargas o sea que baje a la vez un archivo para evitar que se sature el server algo asi como megaupload que evita que se baje dos veces, mi tabla de mis archivos es este
Código PHP:
CREATE TABLE `archivos` (
  `
nombrevarchar(100) default NULL,
  `
autorvarchar(250) default NULL,
  `
urlvarchar(250) default NULL,
  `
descripcionvarchar(50) default NULL,
  `
contadorint(4NOT NULL default '0',
  `
seccionvarchar(100NOT NULL default '',
  `
idsmallint(6unsigned NOT NULL auto_increment,
  
PRIMARY KEY  (`id`)

En la cual esta separados por seccion, ver.php?seccion=musica ó video etc.
y se baja como download.php?id=57 el id es el numero de identificacion del archivo que va a bajar, pero me gustaria limitar su descarga 1 a la vez y que no esten bajando como 4 o mas archivos al mismo tiempo a cierto el sistema de usuario esta integrado con el foro phpbb en caso de que quieran saber.
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:08.