Hallo Mel.
So aber nun hängen ich fest und zwar an der FEhlermeldung
Warning: Cannot modify header information - headers already sent by ..
Ein recht typischer Fehler.
Ich habe das Archiv und php.net dazu befragt aber es hat mir nicht weitergeholfen.
Bei allem Respekt: Das glaube ich nicht. Diese Fehlermeldung kommt so häufig vor, dass man dazu nahezu überall etwas findet.
Mir fehlen komplett die Basics.
Dann erarbeite sie dir am Besten, in dem du das Handbuch konsultierst und vor allem ein Prinzip verfolgst: Trial-and-Error.
Vielleicht kann mir das jemand so erklären dass es auch ein dreijähriger versteht ;(
Soviel zur Meldung: Ein Server sendet, nach dem er eine Anfrage von einem Client (deinem Browser zum Beispiel) erhalten hat, sowohl einen HTTP-Head als auch einen HTTP-Body. (Lasse dich von den Namen nicht verwirren, sie haben nichts mit den in HTML enthaltenen head- und body-Element zu tun, auch wenn sie sich prinzipiell ähneln.)
Im HTTP-Head finden sich einige Informationen über den Statuscode, die Länge der ankommenden Daten und dergleichen. Hier setzt die header-Funktion von PHP an, um eine Weiterleitung zu einer anderen Resource (im HTTP-Kontext gibt es keine Dateien, dafür ist FTP--das Dateitransferprotokoll--zuständig) anzustoßen.
Im HTTP-Body nun finden sich schließlich all deine tatsächlichen Daten, also z. B. dein HTML-Dokument, Grafiken, Stylesheets, etc.
Der HTTP-Head kann serverseitig beliebig modifiziert und erweitert werden, aber nur so lange, wie noch kein Byte Daten gesendet wurde. Wenn Letzteres eintritt, wird implizit der HTTP-Head geschlossen, so dass der HTTP-Body gesendet werden kann.
Ein einmalig geschlossener und abgsendeter HTTP-Head kann nicht mehr modifizert werden, weshalb ein nachträglicher Versuch in PHP berechtigterweise zu obiger Fehlermeldung führt.
Du hast nun zwei Möglichkeiten:
1) Du passt dein Skript so an, dass die für die header-Funktion relevanten Bedingungen noch vor dem Senden des ersten Bytes überprüft und die erforderlichen Schritte eingeleitet werden.
2) Du nutzt die von PHP zur Verfügung gestellte Ausgabepufferung. Damit kannst du zu jeder Zeit den HTTP-Head beeinflussen, bis du den Ausgabepuffer ausgeben und beenden lässt.
Einen schönen Samstag noch.
Gruß, Ashura