Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2008, 12:50
Zertiko
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Que alguien me explique porque ahora me funciona...

Hola gente, antes que nada gracias desde ya!!!

La cuestión es que tengo 1 lanzador de archivos que llevo usando cierto tiempo en el que solo ocultaba la url, recientemente he tenido que cerrar los archivos solo para los usuarios registrados y al añadirle un session_start(); al principio del script para autenticar el lanzador, en el navegador internet explorer si querias abrir el archivo en vez guardalo perdía la ruta..., y te daba error, no así en el firefox que funcionaba sin problemas, revisando el manual de php ví..., que ya había habido otros usuarios que habían tenido el mismo problema y lo habían solucionado añádieno una cabecera que refrescaba la cache..., lo que no me explico es porque es necesario esto solo en el explorer..., pego el code a ver si alguien me lo explica por favor.

ESTE CÓDIGO FUNCIONA SOLO EN EL FIREFOX
---------------------------------------------------------------------------
Código PHP:
<?
session_start
();
include(
"../conexion.php");
if(
$_SESSION["autenticado"]=="acceso") {
$resultado mysql_query("SELECT * FROM consentimientos WHERE ID='{$_GET['id']}'"$conexion);
while (
$fila mysql_fetch_array($resultado)){
$archivo=$fila["url"];
}
header("Content-Type: application/download\n");
header("Content-Disposition: attachment; filename=".basename($archivo));
readfile($archivo);
}else{
header("location:../ingresando.php");
}
?>
--------------------------------------------------------------------------------

EN CAMBIO ESTOS DOS QUE SIGUEN FUNCIONAN EN EL FIREFOX Y EL EXPLORER
------------------------------------------------------------------------------------------------
Código PHP:
<?
session_start
();
include(
"../conexion.php");
if(
$_SESSION["autenticado"]=="acceso") {
$resultado mysql_query("SELECT * FROM consentimientos WHERE ID='{$_GET['id']}'"$conexion);
while (
$fila mysql_fetch_array($resultado)){
$archivo=$fila["url"];
}
header("Cache-Control: public, must-revalidate");
header("Content-Type: application/download\n");
header("Content-Disposition: attachment; filename=".basename($archivo));
readfile($archivo);
}else{
header("location:../ingresando.php");
}
?>


<?
session_start
();
include(
"../conexion.php");
if(
$_SESSION["autenticado"]=="acceso") {
$resultado mysql_query("SELECT * FROM consentimientos WHERE ID='{$_GET['id']}'"$conexion);
while (
$fila mysql_fetch_array($resultado)){
$archivo=$fila["url"];
}
header('Cache-Control: maxage=3600'); //Ajustar maxage=3600 apropiadamente
header('Pragma: public');
header("Content-Type: application/download\n");
header("Content-Disposition: attachment; filename=".basename($archivo));
readfile($archivo);
}else{
header("location:../ingresando.php");
}
?>
Saludos.