Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: bgnumis en 29 Agosto 2017, 15:47 pm



Título: mostrar pdf no ruta
Publicado por: bgnumis en 29 Agosto 2017, 15:47 pm
Hola tengo una duda, tengo unos archivos en una carpeta llamada "archivos" donde tengo subidos el index (en el servidor) y dentro de esa carpeta unos archivos:


Código
  1. <?php
  2.  
  3. $conexion=mysql_connect("localhost","usert", "ddsr") or die("Problemas en la conexion");
  4. mysql_select_db("ugtdef",$conexion) or die("Problemas en la selección de la base de datos");  
  5.  
  6. $result = mysql_query("SELECT * FROM listadoac");  
  7. ?>
  8. <table class="table table-condensed table-hover table-bordered table-striped">
  9. <tr>
  10.  
  11.    <td><strong> Fecha </strong></td>
  12.    <td><strong> Nombre </strong></td>
  13.    <td><strong> Nombre Largo</strong></td>
  14.  
  15. <td><strong> Descripción y observaciones</strong></td>
  16.  
  17.      <td><strong> Archivo </strong></td>
  18.  
  19.                    </tr>
  20.  
  21.               <?php  
  22.  
  23.  
  24. while ($row = mysql_fetch_row($result)){  
  25.    echo "<tr>";  
  26.    echo "<td>$row[1]</td>";  
  27.    echo "<td>$row[2]</td>";  
  28.    echo "<td>$row[3]</td>";  
  29.  echo "<td>$row[4]</td>";
  30.    echo "<td><a href=$row[5]>archivo</a></td>";
  31.  
  32.    echo "</tr>";  
  33. }  
  34.  
  35. ?>  
  36. </table>

La cuestión es que al poner "href=$row[5]" sale el link al pdf. La sorpresa es que el pdf sin estar logeado, sí se puede ver si te sabes la ruta www.miweb.com/archivos/fichero.pdf

¿Como podría hacer para que www.miweb.com/archivos/fichero.pdf sólo sea accesible para los usuarios logeados? Si que tengo un session start y me redirige si tratas de entrar a cualquier página php de esa al index donde debes registrarte pero en los pdf no lo hace?




Título: Re: mostrar pdf no ruta
Publicado por: ivancea96 en 31 Agosto 2017, 15:54 pm
Puedes hacer un archivo PHP que sirva el o los archivos.
Simplemente, dentro de ese código, compruebas si está logueado. Si no lo está, lo rechazas y lo envías a donde quieras o muestras un error de permisos.
Si está logueado, le sirves el archivo. Esto lo puedes hacer cambiando las cabeceras de la respuesta con "header()" y escribiendo el contenido del archivo.
Aquí tienes un ejemplo: http://php.net/manual/en/function.readfile.php (http://php.net/manual/en/function.readfile.php)