Menú Principal

Rewrite

Iniciado por bgnumis, 18 Mayo 2014, 20:17 PM

0 Miembros y 1 Visitante están viendo este tema.

bgnumis

Hola ya he resuelto un problema anterior¡¡¡

LA pregunta ahora me surge por cuestiones de seguridad

OS pido ayuda y os doy mil gracias por adelantado porque me estoy volviendo majara

Si hago esto

Código (php) [Seleccionar]
$nombreUsuario = "http://localhost/Pagina2/Anuales/".$fila['user']."/Notas.pdf";
echo '<a href="' .$nombreUsuario . '"> prueba </a>';



Me aparece el nombre de prueba al darle al "link" click me redirige a la página que quiero:

http://localhost/Pagina2/Anuales/josek/Notas.pdf (josek es el usuario conectado)

Tengo dos dudas, cuando la página ya esté colgada en la host si alguien sabe la estructura de folder y el nombre de usuario tal y como está aunque no esté registrado ¿podrá acceder al pdf?

¿Cómo prodria con modwirte rewrite para que al darle el click con el raton a la palabra "prueba" la www que me muestre arriba omita josek? Si es que se puede.


Muchas Gracias a ver si me podeis ayudar

Mod: Etiquetas GeSHi obligatorias. http://foro.elhacker.net/php/normas-t148495.0.html

bgnumis

Se que es muy cansino que os preguntemos todo el rato pero a ver si alguien puede echar un cable y ayudarme con el cambio de web o como hacer para que sólo el usuario conectado y no otro marcando la ruta acceda al fichero...

Gracias  :P ;-) ;-) ;-) ;-)

JorgeEMX

Existen mejores formas de hacer lo que quieres resolver con mod_rewrite. Podrías usar variables de sesión y así no tener la necesitad de usar el nombre del usuario en la ruta. Como sea, con el nombre o sin el, verificando que el usuario en sesión es el que debe acceder a su propio PDF.

Lo otro sería, hacerte una key y codificarlo con MD5 que implique algunos valores únicos por usuario, y entonces tener una URL del tipo: http://localhost/Pagina2/Anuales/b686aac59bc44cbe8d54aaba3e86930c/Notas.pdf

bgnumis

#3
Hola,

Con lo del password funciona bastante bien (parece mucho más seguro). A ver si me puedes orientar con lo del modwrite.

Te pongo el código que tengo para "autenticar" al usuario hasta que empieza el html

Código (php) [Seleccionar]
<?php
//Inicializar una sesion de PHP
session_start();
 
//Validar que el usuario este logueado y exista un UID
if ( ! ($_SESSION['autenticado'] == 'SI' && isset($_SESSION['uid'])) )
{
    
//En caso de que el usuario no este autenticado, crear un formulario y redireccionar a la 
    //pantalla de login, enviando un codigo de error        <form name="formulario" method="post" action="index.php">
?>

       <form name="formulario" method="post" action="index.php">
           <input type="hidden" name="msg_error" value="2">
       </form>
       <script type="text/javascript">
           document.formulario.submit();
       </script>
<?php
}
 
    
//Conectar BD
    
include("conectar_bd.php");  
    
conectar_bd();
 



    
$sql "SELECT  CF,Direccion,PuertaLocalGaraje, tx_nombre,tx_apellidoPaterno,tx_TipoUsuario,id_usuario, tx_password
            FROM tbl_users
            LEFT JOIN ctg_tiposusuario
            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
            WHERE id_usuario = '"
.$_SESSION['uid']."'";         
    
$result     =mysql_query($sql); 
 
    
$nombreUsuario "";

$cif "";

 
    
//Formar el nombre completo del usuario
  
 
//Cerrrar conexion a la BD
mysql_close($conexio);
?>



<html lang="es">
<head>



En el html lo que yo quisiera es que hubiera un link que al darle pinchando con el ratón click me habriera una fichero (que siempre se llamaría igual) dentro de una carpeta que se llamara para cada usuario que se pudiera logear tx_apellidoPaterno.

¿Esto es posible con rewrite? Cómo lo haría?

bgnumis

Por mas que leo rewrite no veo el modo de hacerlo alguien me puede enviar algún link o pista para hacerlo?

JorgeEMX

A ver, puedes colocar tu "link" visible al pdf de la siguiente manera: http://localhost/Pagina2/Anuales/Notas.php (o cualquier otro archivo)

Internamente el archivo Notas.php tendrá algo similar a esto:

Código (php) [Seleccionar]
<?php
// Localidad de tu pdf
$pdf file_get_contents("/Pagina2/Anuales/".$fila['user']."/Notas.pdf");

// Muestra PDF
header("Content-Type: application/pdf");
header('Content-Disposition: inline; filename="Notas.pdf"');
header('Content-Transfer-Encoding: binary');
echo 
$pdf;