Hallo liebes Selfhtml-Forum,
eine etwas komplexere Frage:
ich baue ein Programm, das auf dem Abfangen von 404-Fehlermeldungen basiert. Jeder Aufruf wird von einer PHP-Datei (Errordocument 404) geprüft und dem User entsprechende Inhalte angezeigt, entweder HTML-Seiten oder Bilder, welche über ReadFile aus einem anderen Teil des Servers hergeholt werden. Dabei wird über Session geprüft, ob der User Berechtigung hat, die Seite oder die Bilder zu sehen.
Wenn ich nun auf die gleiche Weise ein WMV-Video erzeugen bzw. herholen möchte, das im Mediaplayer "gepuffert" werden soll, so geht diese Pufferung immer schief. (Der Download bei Header('content-disposition: attachment') funktioniert!)
Ich schicke für die Wiedergabe (NICHT den Download) folgende Header:
header("Status: 200 OK");
header("HTTP/1.1 200 OK");
$etag = md5_file($Absolute_Adresse_Des_Videos);
$last_modified_time = filemtime($Absolute_Adresse_Des_Videos);
header('Cache-Control: max-age');
header('Pragma: public');
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
header("Etag: $etag");
header('Accept-Ranges: bytes');
header('Content-Length: '. filesize($Absolute_Adresse_Des_Videos));
header('Content-Type: video/x-ms-wmv');
und schließlich
readfile($Absolute_Adresse_Des_Videos);
Ohne Session führen diese Header zu einem perfekten Ergebnis: Ein Video, das vom Mediaplayer gleich einem "original" Video gepuffert wird.
Wenn ich jedoch dabei vor den Headern die Session aktiviere, um die Berechtigung zu prüfen, so schafft der Mediaplayer nicht mal eine Verbindung zu dem Video herzustellen.
Gibt es vllt. eine Möglichkeit, die Sessiondaten abzufragen, ohne den Header zu beeinflussenen? Gibt es andere Header, mit denen ich die Veränderungen durch die Session rückgängig machen kann? Oder andere Möglichkeiten?
Vielen Dank für euer Mitdenken und euren Rat!