Foros del Web » Programando para Internet » PHP »

Que alguien me explique porque ahora me funciona...

Estas en el tema de Que alguien me explique porque ahora me funciona... en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 12/01/2008, 12:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 22 años
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.
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 14:09.