Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/08/2006, 18:35
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas,

Podrías aplicar esa misma lógica de validación usando archivos de texto en vez de una base de datos (que sería más práctico si fuera posible).

Cuando alguien pide una descarga, en vez de hacer una consulta a la DB, grabás los mismos datos en un archivo de texto plano en tu server principal, en alguna carpeta que quede afuera de la raíz pública (o sea, no accesible por URL).

Ahí podrías guardar el nombre del archivo más un código aleatorio, encriptado con md5 o sha, por ejemplo, con algún formato que te permita hacer un split fácilmente.

archivo67.rar|||algun_codigo_aleatorio

Al final de cada "registro", agregás un salto de línea "\n"; eso después te va a permitir acceder a cada uno fácilmente con la función file(), que lee un archivo y devuelve un array donde cada elemento es una línea.

descargas.php, desde el otro servidor, debería hacer la validación de esos mismos parámetros,que le llegan por querystring, contra los datos de ese archivo. Lógicamente que la idea es que no acceda directamente a ellos (no va a poder porque los datos no son accesibles directamente por URL), si no que use un script que le haga de "interfaz", pongamos, validar.php. descargas.php envía los datos y recibe una respuesta como por ejemplo, validado=1 (o sea, hace un file_get_contents() a validar.php, pasando por querystring los parámetros anteriores). En ese caso, se hace la descarga; si no, se rechaza.

Es un poco más de vuelta, pero creo que podría funcionar. O, al menos, tal vez te dé alguna idea.

Suerte
Califa

PD: Para que todo quede más limpio y "redondo", deberías dar de "baja" el registro correspondiente luego de haber validado la descarga desde validar.php .(o eventualmente, al menos, pasar también la hora y archivarla como parte del registro, para validar el tiempo transcurrido entre el pedido y la descarga, para que la habilitación para una descarga sea sólo "temporal" si no es completamente dinámica -- se genera y se destruye en el momento).

PD2: Para que esto funcione, deberías chequear que puedas usar fopen y afinas para abrir archivos remotos a partir de una URL.

Última edición por califa010; 08/08/2006 a las 18:42