Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/07/2013, 19:01
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Restringir descarga de archivos

o.O sin ofender amigo, pero entiendes como funciona el archivo? el archivo no es magico, no va a proteger los archivos por si solo, como dije debes pasarle el nombre del archivo que quieres proteger la descarga, supongamos que tienes una pagina donde tienes un listado de archivos a descargar...

Código HTML:
Ver original
  1. <p><a href="descargas/archivo1.zip">Archivo 1</a></p>
  2. <p><a href="descargas/archivo2.zip">Archivo 2</a></p>
  3. <p><a href="descargas/archivo3.zip">Archivo 3</a></p>
  4. <p><a href="descargas/archivo4.zip">Archivo 4</a></p>
  5. <p><a href="descargas/archivo5.zip">Archivo 5</a></p>

Para proteger las descargas tienes que usar el código que deje pasandole el nombre del archivo a descargar, por lo cual quedaría el mismo listado de la siguiente forma...

Código HTML:
Ver original
  1. <p><a href="descargas.php?archivo=archivo1.zip">Archivo 1</a></p>
  2. <p><a href="descargas.php?archivo=archivo2.zip">Archivo 2</a></p>
  3. <p><a href="descargas.php?archivo=archivo3.zip">Archivo 3</a></p>
  4. <p><a href="descargas.php?archivo=archivo4.zip">Archivo 4</a></p>
  5. <p><a href="descargas.php?archivo=archivo5.zip">Archivo 5</a></p>

Ve que estoy pasando una variable GET "archivo", el cual contiene el nombre del archivo que quieres proteger, pero esto es muy inseguro, por lo cual es mejor generar un ID para cada archivo, así le pasas el id y la pagina "descargas.php" podrá saber a que archivo se refiere dicho ID....

Ahora, para proteger "descargas.php" tienes que tener un sistema de autenticación de usuarios, por lo tanto al comienzo del código debes verificar que exista dicha sesión, por ejemplo

Código PHP:
Ver original
  1. <?php
  2. if (!isset($_SESSION['autentificado'])) {
  3.      header('location: login.php');
  4.      exit();
  5. }

Obviamente es un ejemplo, así que reemplaza el código por lo que tengas hecho...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)