Foros del Web » Programando para Internet » PHP »

limitar descargas para anonimos y htaccess

Estas en el tema de limitar descargas para anonimos y htaccess en el foro de PHP en Foros del Web. Hola, estoy desarrollando un sitio web, en el cual tengo usuarios registrados y quiero que las descargas solo las puedan realizar los usuarios registrados. Dichos ...
  #1 (permalink)  
Antiguo 01/09/2008, 09:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 18
Antigüedad: 15 años, 6 meses
Puntos: 0
limitar descargas para anonimos y htaccess

Hola, estoy desarrollando un sitio web, en el cual tengo usuarios registrados y quiero que las descargas solo las puedan realizar los usuarios registrados. Dichos links se generan leyendose de un directorio y no estan almacenados en la base de datos. Habia leido que se puede hacer una redireccion a una pagina php cuando se accede a algun fichero de un directorio via .htaccess, pero el problema lo tengo en que cuando hago la redireccion no consigo obtener de ninguna forma el nombre del fichero. A alguien se le ocurre como podria conseguir este tipo de limitacion para usuarios anonimos?

Edit: Gracias de antemano

Última edición por raurodse; 01/09/2008 a las 09:18 Razón: añadir agradecimientos
  #2 (permalink)  
Antiguo 02/09/2008, 02:01
 
Fecha de Ingreso: septiembre-2008
Mensajes: 18
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: limitar descargas para anonimos y htaccess

Vale, ya lo tengo solucionado, era sencillamente que en htaccess tenia que enviarlo por get la ruta del fichero. La cosa quedaria asi para quien le pueda interesar :

Código PHP:
RewriteEngine on  
RewriteRule 
^(.*).(zip|rar|dxf|pdf)$ /limitador.php?archivo=$[QSA
Ahora lo que tengo es una duda. Con el nombre del fichero lo que tengo que hacer es abrirlo mediante php y enviarlo de esta forma:


Código PHP:
 $path "/".$directoriodedescargas.$_GET["archivo"]
    
$fullPath $_SERVER['DOCUMENT_ROOT'].$path
    if (
$fd fopen ($fullPath"r")) {
        
$fname basename($fullPath);
        
header('Content-type: application/octet-stream');
        
header('Content-Disposition: filename="'.$fname.'"');
        
header('Content-length: '.filesize($fullPath));
        
header('Cache-control: private'); 
        while(!
feof($fd)) {
            
$buffer fread($fd2048);
            echo 
$buffer;
        }
        
fclose ($fd);
        exit; 
Pero me gustaria saber si se puede enviar de otra forma que no sea PHP quien tenga que estar trabajando. Y si lo tengo que hacer asi, que peso de archivos podria soportar.
  #3 (permalink)  
Antiguo 02/09/2008, 14:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: limitar descargas para anonimos y htaccess

¿Enviar de otra forma? A que te refieres, si estudias el protocolo HTTP podrás ver que no se envia vía PHP, si no vía HTTP, y la unica forma de enviarlo de otra manera es usando una conexion directa por sockets entre el cliente y servidor (que es un request HTTP pero con el browser).

En resumen, si quieres usar el browser para enviar los archivos necesitas usar HTTP.

Saludos.
  #4 (permalink)  
Antiguo 03/09/2008, 00:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 18
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: limitar descargas para anonimos y htaccess

Correcto, se envia mediante protocolo Http, pero de esta forma lo que ocurre es que el interprete de php es quien realiza la transmision, asi pues hasta que el interprete de php no acaba de leer el fichero no se libera de la transmision. Sin embargo cuando tu le clickas a un enlace <a> quien lleva toda la carga del proceso si no tengo mal entendido es el servidor web apache en mi caso, que esta mas optimizado para la transmision de datos. Ademas de que para archivos muy grandes estarias ocupando el interprete de php en un proceso de transmision de datos que no es su tarea.

La pregunta es : ¿puedo evitar que sea php quien se encargue de la transmision y pasarle la carga al servidor web? Creo que la respuesta es que no, pero por preguntar no pierdo nada.
  #5 (permalink)  
Antiguo 03/09/2008, 09:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: limitar descargas para anonimos y htaccess

Si puedes hacerlo siempre y cuando mandes directamente, pero no podrias limitar en este caso la descarga ya que todo lo estas "limitando" via el .htaccess, o sea si no quieres usarlo tienes que quitarte de usar tu sistema para limitar.

Saludos.
  #6 (permalink)  
Antiguo 03/09/2008, 15:24
 
Fecha de Ingreso: septiembre-2008
Mensajes: 18
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: limitar descargas para anonimos y htaccess

Muchas gracias, es lo que suponia pero por saber si habia alguna forma extraña que no coniciera.
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 02:44.