CRôW1: Video über 404, PHP, Session und Readfile erzeugen

Beitrag lesen

Welche das sind, dazu sollte man dann mal schauen, welche Header bei der Session-Variante erzeugt werden, mit einem entsprechenden Browser-Plugin o.ae.

Gänzlich unmodifiziert gibt das Script diese Header aus.

HTTP/1.1 200 OK
Date: Fri, 06 Feb 2009 14:20:48 GMT
Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13 mod_ssl/2.2.3 OpenSSL/0.9.8c
X-Powered-By: PHP/5.2.0-8+etch13
Set-Cookie: PHPSESSID=e2c04c1ef089e00e2869e6097831dceb; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: text/html

Entscheidend sind dabei wohl die Header Expires, Chache-Control und Pragma.

Nach meiner Modifikation kommen die folgenden Header:

HTTP/1.1 200 OK
Date: Fri, 06 Feb 2009 14:25:07 GMT
Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13 mod_ssl/2.2.3 OpenSSL/0.9.8c
X-Powered-By: PHP/5.2.0-8+etch13
Set-Cookie: PHPSESSID=54bf3c45f375e8fb1e61ac1bc5b92814; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: max-age
Pragma: public
Last-Modified: Tue, 03 Feb 2009 08:26:33 GMT
Etag: 46d24ac240c5b25e7fbd855f5c67357d
Accept-Ranges: bytes
Content-Length: 90461690
Content-Type: video/x-ms-wmv

Die Header einer "normalen" WMV-Datei sehen so aus:

HTTP/1.1 200 OK
Date: Fri, 06 Feb 2009 18:26:29 GMT
Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13 mod_ssl/2.2.3 OpenSSL/0.9.8c
Last-Modified: Tue, 03 Feb 2009 08:26:33 GMT
ETag: "125c0aa-56455fa-6dc4a040"
Accept-Ranges: bytes
Content-Length: 90461690
Content-Type: video/x-ms-wmv

Und was sicher auch noch empfehlenswert sein duerfte, wenn du grosse Datenmengen (Videodaten) aus einem Script heraus ausgeben willst - session_write_close aufrufen, nachdem die Berechtigung zum Aufruf der Ressource geprueft wurde. Andernfalls wird naemlich die Datendatei der Session so lange offen gehalten und damit fuer andere Scriptinstanzen gesperrt, wie dein Script laeuft.

Danke für den Tipp, werde mal das Manual zu der Funktion befragen! :))

Paar Minuten und einige Tests später:
*schnall* Jetzt ist mir auch klar, warum manchmal ein Sessionfehler kommt, wenn ich ein Video zwei mal hintereinander aufrufe...