Foros del Web » Programando para Internet » PHP »

Header, location y nueva ventana...

Estas en el tema de Header, location y nueva ventana... en el foro de PHP en Foros del Web. Hola a todos, os cuento, estoy programando un sistema para que las descargas de documentos de mi web solo sean posibles si el usuario es ...
  #1 (permalink)  
Antiguo 04/05/2005, 05:06
 
Fecha de Ingreso: febrero-2003
Mensajes: 47
Antigüedad: 21 años, 2 meses
Puntos: 0
Header, location y nueva ventana...

Hola a todos, os cuento, estoy programando un sistema para que las descargas de documentos de mi web solo sean posibles si el usuario es usuario registrado.

El caso es el siguiente al pinchar sobre el enlace a descargar, lo redirijo a una nueva pág. php donde compruebo si ha iniciado la sesión, si no la ha iniciado con header(location:....) lo mando a la página donde debe iniciar la sesión; pero si el usuario está registrado y ha iniciado ya la sesión quiero que se muestre el documento a descargar --> pero en una nueva ventana del navegador, no en la actual ... como lo hago?

Ya que debo usar header(location: ... ) para abrir el documento? Existe algo así como target=_blank ...

Mil Gracias .

Última edición por juana365; 04/05/2005 a las 08:42
  #2 (permalink)  
Antiguo 04/05/2005, 10:30
 
Fecha de Ingreso: febrero-2003
Mensajes: 47
Antigüedad: 21 años, 2 meses
Puntos: 0
Alguien me ayuda?
  #3 (permalink)  
Antiguo 04/05/2005, 10:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En una cabecera tipo "Location" (cabecera HTTP) lanzada por header() (desde PHP al cliente) no hay "target's" ni PHP conoce de los frames/ventanas que gestione el navegador en ese instante. Toda solución al respecto deberías hacerla vía javascript o usando targets en tu formulario para inciar el proceso de tu script PHP en dicho "target" ..

Ejemplo .. de tu login.php donde tomas ese usuario y contraseña .. llevalo en el formulario por un target a tu "autentificacion.php" o "descargar.php" (que valida al usuario y descarga el archivo) tipo:

<form action="descargar.php" method="post" target="_BLACK">
etc...

Ahí se iniciará tu proceso de validación .. si lo pasa . .puedes hacer tu header("Location: archivo.zip"); para iniciar esa descarga ahí ..

Pero todo esto te quedaría mejor (y sobre todo más seguro!!!) usando más cabeceras HTTP para iniciar la descarga .. en ese caso .. con PHP compones las cabeceras HTTP adecuadas y lees el archivo a descargar dese su ruta al buffer de salida de PHP (vía readfile())

www.php.net/header
(fijate en los ejemplos que usa "content-type" .. etc .. como cabeceras HTTP y readfile() ...Sólo tendrás que ajustar el formato MIME de tus archivos según corresponda.)

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:47.