Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/05/2005, 10:48
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 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,