PHP - ¿Cómo excluir archivos de la búsqueda de scandir?

 
Vista:
sin imagen de perfil
Val: 30
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

¿Cómo excluir archivos de la búsqueda de scandir?

Publicado por César (11 intervenciones) el 16/12/2019 01:38:06
Hola, tengo una duda.
Quisiera saber cómo puedo excluir un archivo de un escaneo

Tengo unas pruebas en las que estoy listando los archivos publicados de X usuario, y cada usuario tiene su propia carpeta de archivos, pero hay un problema.

Si el ID de usuario es "2", la carpeta de él será idéntica al nombre, pero ¿y si alguien pone manualmente la dirección de la carpeta del usuario? Entonces he creado un index.php con la condición de que, si el ID de sesión de usuario no es el mismo de la carpeta, este sea redireccionado a la página de inicio, impidiendo el acceso a los archivos que no le pertenecen.

Hasta ahí todo bien, pero, cuando el propietario de la carpeta accede y ve sus archivos, igual ve "index.php" en su lista de archivos. Lo que quisiera hacer es impedirle al usuario ver dicho archivo, o impedirle la vista a cualquier archivo php.

El código que uso para extraer la lista de archivos es este:

$user = $_SESSION['user_id'];
$ruta = $_SERVER['PHP_SELF'];
$arch = dirname($ruta);
$dir ="../$user/";
$list=scandir($dir);
if ('/foro/files/'.$user == $arch) {
foreach($list as $file) {
if(is_file($dir.$file)) {
$parts = explode(".",$file);
$extension=$parts[count($parts)-1];
$filename=implode(".",$parts);
echo "<center><h2>Lista de archivos.</h2><table border>
<tr><th>Nombre</th><th>Descargar</th></tr>
<tr><td width=110> $filename</td><td width=110> <a href=\"../$user/$file\";>Descargar</a></td></tr></table></center>";
}
}

}

Quisiera saber qué debo agregar al código para agregar esa línea.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder