main
inicio
This commit is contained in:
33
public/ver_opinion.php
Normal file
33
public/ver_opinion.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// 🚨 Paso 1: Validar sesión de usuario
|
||||
if (!isset($_SESSION['usuario_id'])) {
|
||||
http_response_code(403);
|
||||
echo "Acceso denegado. Debes iniciar sesión.";
|
||||
exit;
|
||||
}
|
||||
|
||||
// 🚨 Paso 2: Validar parámetro
|
||||
if (!isset($_GET['file']) || empty($_GET['file'])) {
|
||||
http_response_code(400);
|
||||
echo "Archivo no especificado.";
|
||||
exit;
|
||||
}
|
||||
|
||||
$archivo = basename($_GET['file']); // Previene path traversal (../)
|
||||
$ruta = realpath(__DIR__ . '/../storage/opiniones/' . $archivo);
|
||||
|
||||
// 🚨 Paso 3: Validar que el archivo exista y esté dentro del folder permitido
|
||||
$directorioPermitido = realpath(__DIR__ . '/../storage/opiniones/');
|
||||
if (!$ruta || !file_exists($ruta) || strpos($ruta, $directorioPermitido) !== 0) {
|
||||
http_response_code(404);
|
||||
echo "Archivo no encontrado o fuera de rango.";
|
||||
exit;
|
||||
}
|
||||
|
||||
// ✅ Paso 4: Mostrar el archivo
|
||||
header('Content-Type: application/pdf');
|
||||
header('Content-Disposition: inline; filename="' . $archivo . '"');
|
||||
readfile($ruta);
|
||||
exit;
|
||||
Reference in New Issue
Block a user