Lieber Steffen,
<?php
include(Datei mit den Zugangsdaten zur Datenbank);// Diverse Datenbankabfragen incl. connect und close
if (korrekt) {session_start();} // das geht schon nicht mehr. obwohl vorher nie eine Ausgabe kam.
da kann bereits ein Leerzeichen oder eine Leerzeile am Anfang in der PHP-Datei eine "Ausgabe" erzeugen. In dem Moment, wo irgendetwas per echo, print oder auch nur ?>HTML-Code<?php in der PHP-Datei an den Browser geschickt werden soll, ist eine Ausgabe getätigt worden.
Du kannst aus dem Fehlen dieser Fehlermeldung auf dem "alten Server" nicht schließen, dass Dein Script nicht auch diese Fehlermeldung erzeugt hat, denn es kann durchaus sein, dass dort das Ausgeben der Fehlermeldungen entsprechend anders konfiguriert war.
Mein Tipp: Benutze ob_start(), um das output buffering zu aktivieren, sodass alle Ausgaben an den Browser in einem Puffer aufgefangen werden. Erst wenn Du in Deinem Script explizit diesen Puffer leeren (sprich: an den Browser ausgeben) lässt, gelangen wirklich die ersten Daten zum Browser. Vorher können alle Header noch fleißig umgeändert und korrigiert werden.
In meinem GB-Script mache ich das auch so. Vielleicht willst Du es Dir anschauen...
Liebe Grüße aus Ellwangen,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)