Ich habe anhand des Buches "PHP 4 - Grundlagen und Profiwissen"
Oha, wo "Profiwissen" draufsteht, ist erfahrungsgemäß selten Profiwissen drin.
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at [...]header/functions_session.php:21) in [...]header/functions_session.php on line 96
Um eine Sitzung über mehrere Anfragen halten zu können, muss PHP ein Cookie setzen, und um ein Cookie zu setzen, muss PHP eine HTTP-Kopfzeile namens Set-Cookie schicken. Kopfzeilen kommen (wie bei einer E-Mail) vor dem Seiteninhalt, was im Umkehrschluss bedeutet, dass kein Kopf mehr geschickt werden kann, wenn der Inhalt erstmal raus ist, was wiederum das Aus für den Cookie-Versand bedeutet und schlussendlich die gesamte Sitzung über den Jordan gehen lässt.
Die Ursache für obige Meldung ist also, dass session_start() zu spät aufgerufen wird, weil schon vorher irgendetwas ausgegeben wurde. Dafür reicht es (je nach PHP-Konfiguration) schon, wenn das Skript statt mit "<?php" mit einem einzelnen Leerzeichen beginnt.