Foros del Web » Programando para Internet » PHP »

Convivencia entre session_start() y header()

Estas en el tema de Convivencia entre session_start() y header() en el foro de PHP en Foros del Web. Buenas, Amigos, estoy utilizando la clase FPDF , me funciona muy bien, pero tengo una dificultad. Sucede que estoy utilizando sessiones para guardar variables importantes ...
  #1 (permalink)  
Antiguo 14/11/2007, 12:28
Avatar de mape367  
Fecha de Ingreso: noviembre-2004
Ubicación: CDE, Paraguay
Mensajes: 213
Antigüedad: 19 años, 5 meses
Puntos: 3
Pregunta Convivencia entre session_start() y header()

Buenas,

Amigos, estoy utilizando la clase FPDF, me funciona muy bien, pero tengo una dificultad. Sucede que estoy utilizando sessiones para guardar variables importantes del sistema y verificar la autenticación de usuarios; al hacer esto, ya no me funciona mi script en IE, pero sigue funcionando en FF.

Según mi parecer, el problema esta entre session_start() y header(), hay alguna forma de que estas funciones convivan armoniosamente?

Desde ya muchas gracias,


Saludos
  #2 (permalink)  
Antiguo 14/11/2007, 14:24
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Convivencia entre session_start() y header()

Hola mape, el navegador no interfiere en el desarrollo de tu algoritmo, solo interpreta las salidas, si tienes problemas con un header(location ..... ) intenta otros tipos de redireccion
http://www.forosdelweb.com/f4/recopi...pagina-192865/

Saludos.
__________________
Nuevamente a las pistas ...
  #3 (permalink)  
Antiguo 15/11/2007, 08:02
Avatar de mape367  
Fecha de Ingreso: noviembre-2004
Ubicación: CDE, Paraguay
Mensajes: 213
Antigüedad: 19 años, 5 meses
Puntos: 3
Re: Convivencia entre session_start() y header()

Buenas,

Jorgedx, gracias por responder, pero no se trata de eso.

Justamente, al interpretar las salidas, IE genera un error y aborta la lectura del archivo PDF generado dinamicamente.

Despues de mucho investigar sobre eso, encontré la solución, yo tenia mi libreria de conexion empezando así:
Código:
    session_name('variables');
    session_start();
Lo he puesto así y funcionó correctamente:
Código:
    session_name('variables');
    session_start();
    header("Cache-control: private");
Espero sea de utilidad para alguien

Saludos
  #4 (permalink)  
Antiguo 15/11/2007, 09:03
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Convivencia entre session_start() y header()

interesante .... donde encontraste esa solucion?
__________________
Nuevamente a las pistas ...
  #5 (permalink)  
Antiguo 15/11/2007, 11:25
Avatar de mape367  
Fecha de Ingreso: noviembre-2004
Ubicación: CDE, Paraguay
Mensajes: 213
Antigüedad: 19 años, 5 meses
Puntos: 3
Re: Convivencia entre session_start() y header()

Hola, lo encontré aquí

El fragmento de código con el cual las sessiones no eran compatibles es la siguiente:
Código:
                header('Content-Type: application/pdf');
                header('Content-Length: '.strlen($this->buffer));
		header('Content-disposition: inline; filename="'.$name.'"');
Según leí en la página del autor de FPDF, ese error se llama "síndrome de página en blanco" y suele ocurrir en dos casos; cuando se envía algo (que no sea el pdf) al navegador (ACLARO QUE NO FUE ÉSTE EL PROBLEMA) y cuando se usan sessiones php.

Por cierto, la solución que plantean en la web del autor no es compatible con mi aplicación, por cuestiones técnicas.

Por suerte lo he resuelto.

Saludos

Última edición por mape367; 15/11/2007 a las 13:31
  #6 (permalink)  
Antiguo 15/11/2007, 13:29
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Convivencia entre session_start() y header()

Claro no puedes enviar nada mas que no sea el archivo pdf...
__________________
Nuevamente a las pistas ...
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 21:10.