Ik ben een soort van anti leech systeem aan het bouwen. Een php file valideert of een bezoeker wel eerst op de site is geweest. Dan streamt de file een quicktime bestand via de readfile functie van php.
Dit is de embed tag die we gebruiken:
Hieronder dan het bestand wat de video streamt, een gedeelte ervan.
In IE en Firefox (ook op mac) werkt dit allemaal perfect. Echter, in safari op een mac werkt het niet. Het filmpje wordt niet afgespeeld, ook niet als je videostream.php direct aanroept. De bovenste headers hebben allemaal gaan effect.
Iemand enig idee hoe dit te verhelpen? Mis ik cruciale headers? Op internet is er maar één geval te vinden van dit probleem, en daar is geen antwoord uitgekomen.
Dit is de embed tag die we gebruiken:
PHP:
1
2
3
4
5
6
7
8
9
10
| <object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="400" height="315" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"> <param name="src" value="click.mov"> <param name="controller" value="true"> <param name="autoplay" value="false"> <param name="bgcolor" value="000000"> <param name="cache" value="true"> <param name="target" value="myself"> <param name="href" value="videostream.php?id=1"> <param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html"> <embed width="400" height="315" controller="yes" cache="true" target="myself" href="videostream.php?id=1" src="click.mov" bgcolor="000000" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" autoplay="false"></embed> |
Hieronder dan het bestand wat de video streamt, een gedeelte ervan.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| $data = file_get_contents($check); $data = unserialize($data); //print_r($data); if($data['error'] != 1) { header('Content-type: video/quicktime'); // Output a quicktime //header('Content-Disposition: attachment; filename="movie.mov"'); // file name //header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1 //header("Cache-Control: post-check=0, pre-check=0", false); //header("Pragma: no-cache"); // HTTP/1.0 readfile($data['URL']); } else { echo 'Wrong session!'; } |
In IE en Firefox (ook op mac) werkt dit allemaal perfect. Echter, in safari op een mac werkt het niet. Het filmpje wordt niet afgespeeld, ook niet als je videostream.php direct aanroept. De bovenste headers hebben allemaal gaan effect.
Iemand enig idee hoe dit te verhelpen? Mis ik cruciale headers? Op internet is er maar één geval te vinden van dit probleem, en daar is geen antwoord uitgekomen.