PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Mehrere Header gleichzeitig senden

Um Header-Injection Angriffen vorzubeugen wurde in PHP Versionen 4.4.2 und 5.1.2 der Funktion zum Senden der Header überarbeitet. Seit diesen Versionen ist es nicht mehr möglich, mehrere Header gleichzeitig zu senden.

Das kann schnell zu Problemen führen - wenn z.B. Binärdaten wie Bilder über HTTP gesendet werden sollen. Sollen konkret in diesem Fall mehrere Header gleichzeitig übertragen werden, wie Dateigröße und Cache-Header, kommen auf einmal wichtige Informationen nicht mehr beim Client-Browser an. Und PHP wirft folgende Warnung:

Warning: Header may not contain more than a single header, new line detected

Als fatal hat sich das Fehlen der Dateigröße herausgestellt. Browser warten vor Beendigung des Ladevorgangs eine Weile ab, ob noch Daten vom Server an den Client gesendet werden. Erst nach diesem Delay wird das Bild angezeigt. Diese Anzeigeverzögerung ist nicht unerheblich und erweckt den Eindruck, dass der Webserver sehr langsam antwortet.

Interessanterweise kompensiert die IE 6 das Problem besser als IE 7 oder Firefox. Beim IE 7 und Firefox war der Anzeigedelay ungefähr bei 1-2 Sekunden pro Bild; das bedeutet bei einer Bildergallerie von 20 Bildern pro Seite eine Gesamtladezeit von etwa 40 Sekunden.

Vorher:

header("Content-Length: 216\\nContent-Type: image/jpeg");

Nacher:

header("Content-Length: 216");
header("Content-Type: image/jpeg");

Ähnliche Artikel:

  1. PDF Thumbnails mit PHP

Jacqueline meint dazu:

26. März 2008 um 08:34

Oooooooh daaaaaaaaanke, dieser ENDLICH mal hilfreiche Hinweis, nach dem ich paar Tage lang mit allen möglichen Suchwörtern gesucht habe, hat meinem Download-Center-Script den Bit-Hintern gerettet ;-))))))))

Hatte auch dieses Header-Prob (bei einem Download-Center, bei welchem man Email und Name eingeben muß, bevor man z.B. eine PDF per automatisch zugesandter Email downloaden darf), und dann mal versuchsweise den Header in meinem Script “gesplittet”, so wie in Deinem Beispiel - und es funzzzzzzzt endlich, juhu juppheidi und überhaupt ;-))

Danke nochmal,
Jacqueline

timi meint dazu:

15. April 2008 um 08:10

*lach* Gern geschehen :)

RSS für Kommentare zu diesem Artikel · TrackBack URI

Schreib Deine Meinung