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:
<?php
$conexion=mysql_connect("localhost","usert", "ddsr") or die("Problemas en la conexion");
mysql_select_db("ugtdef",$conexion) or die("Problemas en la selección de la base de datos");
$result = mysql_query("SELECT * FROM listadoac");
?>
<table class="table table-condensed table-hover table-bordered table-striped">
<tr>
<td><strong> Fecha </strong></td>
<td><strong> Nombre </strong></td>
<td><strong> Nombre Largo</strong></td>
<td><strong> Descripción y observaciones</strong></td>
<td><strong> Archivo </strong></td>
</tr>
<?php
while ($row = mysql_fetch_row($result)){
echo "<tr>";
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
echo "<td>$row[3]</td>";
echo "<td>$row[4]</td>";
echo "<td><a href=$row[5]>archivo</a></td>";
echo "</tr>";
}
?>
</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?
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)