Respecto de los problemas de Headers already sents, se trata de un problema cómo dije de cabeceras ya enviadas, y se produce, porque NO SE TIENE QUE ENVIAR NINGUN CÓDIGO NI CARACTER NI NADA al navegador antes de este script.
Es por el uso de sesiones, cuando usamos sesiones(este caso) estamos obligando a que se envien unas cabeceras especiales con una serie de datos, pero el hecho de escribir algo antes de iniciar sesión implica que ya se envien esas cabeceras y por eso da error.
Pero hay una solución, y es precisamente la que proponía que lo que hace es crear una especie de buffer de todo lo que se manda al navegador, y se activa encabezando la página con:
Código PHP:
<?
ob_start();
?>
Y terminando con
Código PHP:
ob_en_flush();
De esta forma nos aseguramos que php guarda en ése buffer hasta que vea la instrucción de vaciar el buffer todo el contenido y por eso aunque escribamos antes de iniciar sesión, tanto da, ya que en realidad php no lo manda al navegador.
No sé si me he explicado bien, pero es más o menos eso.
Salu2 ;)