error session_start

Juan Cataldo Sepulveda jcataldo en inf.utfsm.cl
Vie Mar 5 18:32:29 CLST 2004


El Vie 05 Mar 2004 18:18, Hugo Arturo Figueroa Rodríguez escribió:
> estoy haciendo una pagina web con sesiones funciona bien, pero de vez en
> cuando manda en siguiente error al pasar por la funcion session_start();
> que es la primera linea de la pagina.
>
> Cannot send session cache limiter - headers already sent (output started
> at

session_start() necesita manipular los encabezados de la respuesta HTTP, los 
que obviamente deben ser enviados antes que el texto de la pagina HTML que 
estas generando. 

PHP da por terminado en envio de encabezados al detectar la primera linea de 
tu script que genera salida (lo que deberia corresponder al comienzo del 
texto HTML), por lo que desde ese momento no puedes invocar funciones como 
session_start().

Lo que debes hacer es determinar donde y por que comienzas a generar salida 
(basta solo un espacio fuera de los <?php ?> para que ocurra eso), 
probablemente guiandote por el mensaje de error (fijate en el "output started 
at..").

Notese que PHP tiene una opcion para hacer "buffering" del texto HTML para asi 
no dar por finalizado el envio de encabezados hasta que el script termine, 
pero no deberias usar esta caracteristica a menos que tengas absolutamente 
claro lo que ello implica.

-- 
Juan M. Cataldo Sepulveda           mailto:jcataldo en inf.utfsm.cl
                               http://www.inf.utfsm.cl/~jcataldo
Unidad de Servicios de Computacion e Internet - DI, UTFSM, Chile



Más información sobre la lista de distribución PHP