Ver Mensaje Individual
  #21 (permalink)  
Antiguo 12/04/2012, 22:35
DavenStrife
 
Fecha de Ingreso: abril-2012
Mensajes: 14
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Visualizar archivos (PDF, doc...) pero con autentificación

Ahorita busco que todos vean, que nadie descargue. Obviamente que cuando incrustas con iframe simple ya te puedes guardar el archivo. Pero eso ya depende de como lo incrustes, eso es aparte. Ojo, la persona que ustedes autentifican si puede ver y puede descargar. Cuando me refiero a que en mi caso puede descargar quiero decir que en la 4ta mencion que hice puedo entrar a ver el archivo pdf no incrustado, sino completo en la pantalla, y por esa razón digo que puedo simplemente descargarlo. En sus ejemplos, eso esta bien, pero en el mio, no lo quiero asi, quiero que se vea, pero no descargue.

En tus links no voy a poder entrar porque no se ha iniciado la sesión, y comprendo perfectamente que aquella se inicia desde loguin.php en tu caso. En el mio se inicia en:

embedprivado.php
Código:
<?php
	session_start();
	$_SESSION['pdf'] = "on";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Prueba de Incrustacion</title> 
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
    <iframe src="rutapdf.php" width="600" height="400"></iframe>
 </body>
</html>
y este es mi fichero php que me lee los pdfs:

rutapdf.php:
Código:
<?php
    session_start();

    if(isset($_SESSION['pdf'])){
        if($_SESSION['pdf'] == "on"){
            $fichero = "../private/mipdf.pdf"; // aqui para la prueba solo estoy haciendolo con un archivo, luego le pedire parametro para cada archivo
            if (file_exists($fichero)) {
                $_SESSION['pdf'] = "off"; //cambio el valor de la sesion para que cuando alguien entre por algun lugar que no sea esta pagina, aparezca mensaje de negacion
                header('Content-Type: application/pdf');
                header('Expires: 0');
                header('Cache-Control: must-revalidate');
                header('Pragma: public');
                ob_clean();
                flush();
                readfile($fichero);
                exit;
            }else{
                echo "Archivo inexistente";
            }
        }else{
            echo "No permitido";
        }
    }else{
        echo "No autorizado";
    }

?>
Uhmm... ya estoy casi cerca, pero algo me falta. Si pongo tu primer codigo de htaccess en mi carpeta de pdfs?
Cita:
SetEnvIfNoCase Referer "^http://tudominio.com/loguin.php" local_ref=1
<FilesMatch "\.(pdf)$">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
Espero me tengan paciencia xD. Saludos y gracias por su apoyo =D

Última edición por DavenStrife; 12/04/2012 a las 22:41 Razón: Aclarar cosas