Mit PHP eine ASX Datei erstellen

dr_Alex

Erfahrenes Mitglied
Folgendes Problem. Ich möchte einen Schutz auf meine ASX Dateiern haben und habe es so gemacht:

PHP:
<?php
$ordner="";
	
$okaysites[]='http://www.*******';
$okaysites[]='http://www.*******';
	
$httpref = $HTTP_SERVER_VARS["HTTP_REFERER"];
if (!isset ($httpref)) {$httpref = $HTTP_REFERER;}
if (eregi("\?", $httpref)){
	$refererget = explode("?",$httpref);
	$referer = $refererget[0];
} else { 
	$referer = $httpref; 
}
foreach($okaysites as $okaycheck){ 
if (eregi($okaycheck,$referer)) {$setok = 1; $white=$id[$okaycheck];}  
}
if (!isset($setok)){$setok = 2;} 
if ($setok==1){
	readfile($ordner.$a);
}else{
	//loggen
}
?>

jedoch wird die Datei, die mit readfile() gelesen wird, nicht an den Media Player übergeben sondern geht als eine eigene Seite auf worin der Quelltext der ASX Datei entspricht.

Ideen?

Thx vorraus
 
Neurodeamon hat gesagt.:
Der Code kommt mir bekannt vor. Scheint Schnippsel aus meinem Download-Protector zu enthalten. Wenn Du schon Teile verwendest, schaue Dir mal den Teil an, wo ich den Header automatisch bestimmen lasse :-)
http://www.tutorials.de/tutorials25850.html

kann sein das ich n paar zeilen von dir genommen habe (so ziemlich alle :))

also ich übergebe jetzt das als header:

PHP:
header("Content-Type: video/x-ms-asx;name=\"$a\""); 
header("Content-Disposition: inline;filename=\"$ordner{$a}\"");

damit sieht der code so aus:

PHP:
<?php
$ordner="";

$okaysites[]='http://www.***';
$okaysites[]='http://www.***';
$okaysites[]='http://***';
$okaysites[]='http://***';

$httpref = $HTTP_SERVER_VARS["HTTP_REFERER"];
if (!isset ($httpref)) {$httpref = $HTTP_REFERER;}
if (eregi("\?", $httpref)){
$refererget = explode("?",$httpref);
$referer = $refererget[0];
} else { 
$referer = $httpref; 
}
foreach($okaysites as $okaycheck){ 
if (eregi($okaycheck,$referer)) {$setok = 1; $white=$id[$okaycheck];}  
}
if (!isset($setok)){$setok = 2;} 
if ($setok==1){
header("Content-Type: video/x-ms-asx;name=\"$a\""); 
header("Content-Disposition: inline;filename=\"$ordner.$a\"");
readfile($ordner.$a);;

}else{
# loggen
}
?>

jedoch will das nicht in den mediaplayer activx geladen werden. aber auch als download wird es in internet explorer falsch versendet. in firefox ist der download richtig.

hier der link: http://www.rumir.de/ext.php

thx vorraus
 
Zuletzt bearbeitet:
habe jetzt
PHP:
header("Content-Disposition: inline;filename=\"$ordner{$a}\"");

durch
PHP:
header("Content-Disposition: attachment; filename=$ordner{$a}");

ersetzt.

daurch funktioniert der download auch in intenet explorer. aber in den axtive x wird es nicht geladen.
 
Ich habe mich mal ein wenig schlau gemacht. Das direkte Laden in den Media Player scheint nicht so einfach zu sein. Habe jedenfalls viele Beiträge mit Fragen und Fehlermeldungen gefunden ;)

Also, das Abspielen von Inhalten im Mediaplayer hat nichts mit den Headern zu tun, sondern mit einem XML-Code wie z. B. hier:
Code:
<asx version="3.0">
   <Entry>
      <ref href="path/filename.asf">
   </Entry>
</ASX>

Diesen generierst Du mit PHP und schon sollte die Datei abgespielt werden, allerdings wird hier der Pfad natürlich angegeben und nicht mehr über PHP (aus dem Arbeitsspeicher) an den Klienten übertragen.
 
also ich will mit readfile schon auf vorhandene asx dateien zugreifen die den xml standart entsprechen.

Code:
<ASX version = "3.0"><TITLE>RUMIR.de - Audio Stream</TITLE><MoreInfo href= "http://www.rumir.de/" /><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_01.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_02.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_03.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_04.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_05.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_06.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_07.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_08.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_09.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_10.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry><Entry><Ref href = "http://www.rumir.de/stream/alb/693/693_11.wma" /><Banner href= "http://www.rumir.de/blogo.jpg" ><MoreInfo href = "http://www.rumir.de/" /></Banner></Entry></ASX>

die sehen so aus. nach den ganzen tag googeln hab ich keine lösung gefunden also scheint es nicht möglich zu sein. schade eigentlich
 
Du kannst mit readfile() auf die ASX-Dateien zugreifen. Da ASX-Dateien allerdings TEXT-Dateien sind wirst Du das verschleiern von den Videodateien nicht hinbekommen. Du kannst verhindern das jemand direkt auf die asx-dateien verlinkt, aber nicht das Dir jemand die Links aus den ASX-Dateien klaut.

Ich verstehe nicht ganz was Du bewirken willst *wirr*
 
andere shop nehmen sich einfach den link zu der asx datei und stellen das in ihren. das veruhrsacht unnötig trafik und wir helfen der konkurenz ihre wahre zu verkaufen ohne grösseren aufwand. warum sollte sich unsere konkurenz mit unserer arbeit schminken. auch wenn die, die links klauen, dann müssen die aber in mühe voller arbeit eine asx datei selber erstellen (ich gehe davon aus das sie "suchen und ersetzten" nicht kennen) :)

achja und später sollen die asx dateien dynamisch aufgebaut werden. weil in den ordner liegen bereits ca 2000 asx dateien und es dauert etwas darauf per ftp zuzugreifen :)

ich hab das auch schon mit htaccess probiert aber es will auch nicht

Code:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?***\.de(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?***\.de(/.*)?$ [NC]
RewriteRule \.asx$ - [F]

aber wenn jemand eine gute möglichkeit dann lass mich es bitte wissen

thx
 
Zuletzt bearbeitet:
Einen 100% Schutz wirst Du bei Videos nicht hinbekommen. Letztenendes handelt es sich bei Deinen Versuchen um obscurity (Verschleierung) der Informationen. Da aber z. B. der Player die Daten bekommen muss, um etwas darzustellen, ist es kaum möglich mit PHP oder Mod-Rewrite jemanden im Ernst daran zu hindern den Inhalt zu verlinken. Intelligentes Watermarken der Videos halten schonmal einen Teil von Trafficdieben ab, je nachdem um was für Videos es sich handelt. Ganz böse - aber effektiv - sind Videos die nur mit gültigem Zertifikat abgespielt werden können.

Den normalen User kann man damit sicherlich sehr gut hindern zu verlinken/kopieren. Aber man kann erfahrenere User damit nicht lange schrecken ;-)
 
Zurück